gpt4 book ai didi

MySQL 语句内连接

转载 作者:行者123 更新时间:2023-11-29 10:21:32 25 4
gpt4 key购买 nike

我有这个SQL语句

SELECT
locales.id_c,
locales.name_p AS NombrePropietario,
locales.surname1 AS PrimerApellido,
locales.local_name AS Nombre_Local,
locales.zona AS ZonaLiga,
locales.id_m1 AS Maquina_1,
maquinas.tipo_m AS Tipo_de_Maquina1,
locales.id_m2 AS Maquina_2,
maquinas.tipo_m AS Tipo_de_Maquina2,
locales.id_m3 AS Maquina_3,
locales.id_m4 AS Maquina_4
FROM locales
INNER JOIN maquinas
ON locales.id_m1 = maquinas.id_m;

在这种情况下,它只显示“Maquina_1”和“Tipo_de_Maquina1”

并且需要显示“Maquina_2”和“Tipo_de_Maquina2”、“Maquina_3”和“Tipo_de_Maquina3”等。

有人可以帮助我吗?

最佳答案

使用表别名多重连接 maqinas 表:

SELECT
l.id_c,
l.name_p AS NombrePropietario,
l.surname1 AS PrimerApellido,
l.local_name AS Nombre_Local,
l.zona AS ZonaLiga,
l.id_m1 AS Maquina_1,
m1.tipo_m AS Tipo_de_Maquina1,
l.id_m2 AS Maquina_2,
m2.tipo_m AS Tipo_de_Maquina2,
l.id_m3 AS Maquina_3,
m3.tipo_m AS Tipo_de_Maquina3,
l.id_m4 AS Maquina_4,
m4.tipo_m AS Tipo_de_Maquina4
FROM locales l
LEFT JOIN maquinas m1 ON l.id_m1 = m1.id_m
LEFT JOIN maquinas m2 ON l.id_m2 = m2.id_m
LEFT JOIN maquinas m3 ON l.id_m3 = m3.id_m
LEFT JOIN maquinas m4 ON l.id_m4 = m4.id_m
;

对于记录没有 maquina 1、2、3 或 4 的情况,我使用外连接。如果每条记录始终包含所有 maquina,则可以切换到内连接。

无论如何,您可能需要考虑另一个数据模型,在其中添加一个表 locale_maquina 并删除单个 id_m1id_m4来自locales 表。这将使选择数据变得更加容易,并支持链接到某个位置的灵活数量的 Maquinas。

关于MySQL 语句内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com