我发现的另一个父母->孩子的答案似乎并没有真正解决我的情况,所以去吧。
left-right-connections
cid leftId rightId
1 1 1
2 1 2
3 1 3
4 2 4
5 3 5
5 3 6
left
id desc
1 RED
2 GREEN
3 BLUE
right
id desc
1 car
2 train
3 helicopter
4 truck
5 boat
6 roller skates
我需要的是帮助创建将返回类似内容的查询
cid leftId rightId desc
1 RED
1 1 1 car
2 1 2 train
3 1 3 helicopter
2 GREEN
4 2 4 truck
3 BLUE
5 3 5 boat
6 3 6 roller skates
我可以使连接正常工作,但是当我需要的是将左项作为所有右项子项的父项时,我将获得每一行中所有的leftId和右Id和desc。
我认为我需要的是leftId的区别,然后是获取所有关联的rightId项的子查询。我可以做非常基本的sql,但是这很麻烦。
我希望我在这里所作的解释是有意义的。
感谢您的帮助。
答案 0 :(得分:1)
您可以首先获取不同的leftId数据,然后与rightId数据合并并按列排序以获得所需的输出。这是显示或UI所需的东西吗?
例如:
SELECT DISTINCT NULL AS CID, leftID, NULL AS rightId, b.descr
FROM leftrightT A
INNER JOIN leftT B on A.leftId = B.id
UNION ALL
SELECT CID, leftID, rightId, b.descr
FROM leftrightT A
INNER JOIN rightT B on A.rightId = B.id
order by leftId, CID