是否可以使用左连接,这将产生如下假设的结果:
表A:
id value
1 foo
2 bar
3 foobar
表B:
foreign foreign_value
1 fish
1 soup
连接的结果应该是表A(左连接)的每个结果,另外还有A和B之间的连接结果:
SELECT * FROM复杂的连接B ON A.id = B.foreign:
id value foreign foreign_value
1 foo NULL NULL
1 foo 1 fish
1 foo 1 soup
2 bar NULL NULL
3 foobar NULL NULL
执行正常LEFT JOIN时,显示的example-resultset的第一行将不存在。
这样的选择可能吗?
答案 0 :(得分:1)
不,这样的连接是不可能的,因为你不会得到第一行。
您可以使用像
这样的联盟SELECT a.id, a.value, b.foreign, b.foreign_value
FROM A inner join B ON A.id=B.foreign
UNION
SELECT a.id, a.value, null, null
FROM A
这将在您的示例中给出预期结果,但我不明白您为什么尝试这样做。因此,我不知道这是否在一般情况下给出了预期的结果。