多表MySQL查询返回太多结果

dee*_*ell 1 mysql join left-join

我需要在8个表中进行SELECT,但结果并不是我所期望的.

丑陋的代码:

SELECT equipment.*
FROM equipment
LEFT JOIN equip_adaptador  a ON (a.cod_equip = equipment.cod_equip)
LEFT JOIN equip_antena aa ON (aa.cod_equip = equipment.cod_equip)
LEFT JOIN equip_cable c ON (c.cod_equip = equipment.cod_equip)
LEFT JOIN equip_conector cc ON (cc.cod_equip = equipment.cod_equip)
LEFT JOIN equip_fonte f ON (f.cod_equip = equipment.cod_equip)
LEFT JOIN equip_router r ON (r.cod_equip = equipment.cod_equip)
LEFT JOIN equip_suporte s ON (s.cod_equip = equipment.cod_equip)
WHERE equipment.cod_equip = 'EC726026316A0'
Run Code Online (Sandbox Code Playgroud)

结果是63项,是不对的.

解释上面的代码:

我的表equipment是我的主表,我有cod_equip field(所有我的从表的主字段).

我所有的奴隶表都给了一个叫做的前缀equip_(共有7个从属表)

现在我需要一个SELECTJOIN所有的8个表.

添加更多:

我期待9行,但它取了63行,我需要显示这样的东西:表设备(只有1行)和其他表所拥有的尊重数量.

例如equip_adaptador插入带有两个相同的时间cod_equip,然后我需要表现出来..

此查询与我逐个查询以查看设备的内容相同.c_cn_equip ='EC726026316A0'

只是它!

在此先感谢大家!

bti*_*lly 5

您的ON子句应该对您要加入的表有约束.目前他们没有.因此,例如,您将在equip_adaptador.cod_equip = equipment.cod_equip的所有情况下加入equip_fonte.而且该陈述的真实性与equip_fonte中发生的事情无关.