如何使用单个ID加入许多SQL表?

时间:2018-03-10 21:14:10

标签: mysql join

我有五个表,其中一个表链接到ID

的其他表
TableA > ID | name

TableB > aID | cID

TableC > cID | nameC

TableY > aID | zID

TableC > zID | nameZ

像这样连接

TableA ID > (TableB aID > TableB cID) > TableC nameC
TableA ID > (TableB aID > TableY zID) > TableZ nameZ

当我不需要为每个表选择所有表时,我正在对每个表使用此查询

select A.ID, A.name from TableA A
left join TableB B on A.ID = B.aID
inner join TableC C on B.cID = C.cID;

select A.ID, A.name from TableA A
left join TableY Y on A.ID = Y.aID
inner join TableC Z on Z.zID = Z.zID;

现在我将他们中的两个加入到一个查询中,以便在它们上执行where子句,以获得这样的链接结果

select A.ID, A.name from TableA A

left join TableB B on A.ID = B.aID
inner join TableC C on B.cID = C.cID

left join TableY Y on A.ID = Y.aID
inner join TableC Z on Z.zID = Z.zID

where 
C.nameC = 'nameC1' OR C.nameC = 'nameC2'
and
Z.nameZ = 'nameZ1' OR Z.nameZ = 'nameZ3'

但是在所有的查询中,所有结果都会在最后一个中重复多次,但我想只得到一个带有A.ID和A.name的行,如果它在where子句条件下并按顺序排列匹配最高的那个。

0 个答案:

没有答案