我知道第一个从查询中选择的是左表,但我仍然感到困惑何时使用左右连接:
例如:
select chann.name from investments inv
right join channels chann on chann.id = inv.channel_id;
select chann.name from channels chann
left join investments inv on chann.id = inv.channel_id;
它们都返回相同的结果,为什么在第一个查询中使用正确,为什么在第二个查询中使用,这是否与外键有关?
由于
答案 0 :(得分:3)
在您的示例中,两个查询都是相同的,因为当从右向左更改时,您还会更改表顺序。为了简单理解这一点,请考虑以下示例:
SELECT A.* FROM Table1 A LEFT JOIN Table2 B on A.key=B.Key
在这种情况下,LEFT JOIN表示Table1中的所有记录,因为左边是表格。如果使用权利,则表示表2中的所有记录