如果表名称在“左连接”中颠倒了,是否会导致“右连接”?

阿什什·帕瓦尔

考虑以下情况。我们有两个表的用户和订单。用户表具有三列Id,Name,Order_id。Orders表具有两列Id和order_item。

SQL查询以获取每个用户的所有订单。

 select * from users left join orders on users.order_id = orders.id;

SQL查询以获取每个订单的所有用户

 select * from users right join orders on users.order_id = orders.id;

但是我使用的Sqlite3当前不支持Right,Full Outer连接。因此,我尝试使用反向表名称跟随左联接。这可以解决我的问题。

 select * from orders righ join users on users.order_id = orders.id;

所以我的问题是,如果我在左联接中反转了表名,是否会导致右联接?当然,Right join以不同的顺序打印表列,而我的查询以不同的顺序打印。

请帮我这种方法吗?与Real Right外部连接的比较,劣势和其他值得注意的东西?

福帕斯

RIGHT联接很少使用。
原因是LEFT对于大多数人来说,联接更容易理解(我认为,尽管使用RTL编写的人可能会不同意)。

当您需要Table1的所有行和Table2的任何匹配行时,通常会考虑一个结果集,该结果集在结果的左侧具有Table1的列,而在右侧具有Table2的列。

所以你写:

SELECT * FROM Table1 LEFT JOIN Table2 ON <condition>

这与以下内容完全相同:

SELECT * FROM Table2 RIGHT JOIN Table1 ON <condition>

当然,Right join以不同的顺序打印表列我的查询以不同的顺序打印

您必须显式设置结果中列的顺序。
因此,SELECT *如果您不想首先让Table2的列写入:

SELECT Table2.*, Table1.* ....

或者,如果您不想要所有列,请枚举所需的所有列:

SELECT Table2.col1, Table2.col2, ...., Table1.col1, ....

当然,使用别名使代码更短是一个好习惯,因此可以编写查询:

SELECT o.*, u.* 
FROM orders AS o LEFT JOIN users AS u
ON u.order_id = o.id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

左连接与右表中的位置

来自分类Dev

Mysql左连接,条件在右表中

来自分类Dev

SQL 左连接 - 右表中的多行

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

SQL左连接-右表中的固定值

来自分类Dev

中间SQL连接中的“左”和“右”表是什么?

来自分类Dev

如果从左连接表中的值不为空,则获取计数

来自分类Dev

mysql左连接/右连接3个表

来自分类Dev

PHP / MYSQL-仅在表中显示左连接项,但在列中连接右连接值

来自分类Dev

通过从右表中采样来填充左连接的 NaN 值

来自分类Dev

左外连接,从左边查找所有在右表中没有出现的,mysql

来自分类Dev

左外连接使用从右表中排除记录的位置

来自分类Dev

左连接并仅从右表中选择匹配的列

来自分类Dev

使用postgresql,如何连接表,从左表中选择全部,并从右表中求和和计数?

来自分类Dev

LINQ右连接和左连接

来自分类Dev

右外连接到左外连接

来自分类Dev

OpenTok流视频尺寸是否颠倒了?

来自分类Dev

是否可以在左连接中过滤?

来自分类Dev

当右表中存在 NULL 时返回左表中的所有结果,当右表中不存在空时返回内连接的结果

来自分类Dev

如果vb.net中的列名不同,是否可以使用左外部连接sql语句

来自分类Dev

如果左连接表中的行为空,则使用另一行

来自分类Dev

如果通过左连接在其他表中不匹配,则选择值

来自分类Dev

glMatrix中的转换顺序颠倒了吗?

来自分类Dev

颠倒了PyCharm中的INSERT关键行为

来自分类Dev

glMatrix中的转换顺序颠倒了吗?

来自分类Dev

带有右表的where子句的左连接(必须从右返回NULL)-Oracle

来自分类Dev

带有右表的where子句的左连接(必须从右返回NULL)-Oracle

来自分类Dev

MySQL左连接,根据左表最大ID从左表获取所有右表列和2列

来自分类Dev

如果不处理IDataReader,连接是否会返回到池中?

Related 相关文章

  1. 1

    左连接与右表中的位置

  2. 2

    Mysql左连接,条件在右表中

  3. 3

    SQL 左连接 - 右表中的多行

  4. 4

    中间SQL连接中的“左”和“右”表是什么?

  5. 5

    SQL左连接-右表中的固定值

  6. 6

    中间SQL连接中的“左”和“右”表是什么?

  7. 7

    如果从左连接表中的值不为空,则获取计数

  8. 8

    mysql左连接/右连接3个表

  9. 9

    PHP / MYSQL-仅在表中显示左连接项,但在列中连接右连接值

  10. 10

    通过从右表中采样来填充左连接的 NaN 值

  11. 11

    左外连接,从左边查找所有在右表中没有出现的,mysql

  12. 12

    左外连接使用从右表中排除记录的位置

  13. 13

    左连接并仅从右表中选择匹配的列

  14. 14

    使用postgresql,如何连接表,从左表中选择全部,并从右表中求和和计数?

  15. 15

    LINQ右连接和左连接

  16. 16

    右外连接到左外连接

  17. 17

    OpenTok流视频尺寸是否颠倒了?

  18. 18

    是否可以在左连接中过滤?

  19. 19

    当右表中存在 NULL 时返回左表中的所有结果,当右表中不存在空时返回内连接的结果

  20. 20

    如果vb.net中的列名不同,是否可以使用左外部连接sql语句

  21. 21

    如果左连接表中的行为空,则使用另一行

  22. 22

    如果通过左连接在其他表中不匹配,则选择值

  23. 23

    glMatrix中的转换顺序颠倒了吗?

  24. 24

    颠倒了PyCharm中的INSERT关键行为

  25. 25

    glMatrix中的转换顺序颠倒了吗?

  26. 26

    带有右表的where子句的左连接(必须从右返回NULL)-Oracle

  27. 27

    带有右表的where子句的左连接(必须从右返回NULL)-Oracle

  28. 28

    MySQL左连接,根据左表最大ID从左表获取所有右表列和2列

  29. 29

    如果不处理IDataReader,连接是否会返回到池中?

热门标签

归档