在同一张桌子上的内部查询-有更好的方法吗?

本德尔

我有这两个表(简化版)

命令

owner_id | user_1 | user_2 | amount | order_id
-----------------------------------------------
   1     |   2    |   3    |  100   |   AAA
   1     |   7    |   2    |  200   |   BBB
   2     |   3    |   5    |  400   |   CCC

用户数

user_id | username
------------------
   1    |  John
   2    |  Robert
   3    |  Sally
   4    |  Mario
   5    |  Albert
   6    |  Hernest
   7    |  Homer

我需要在一个查询中获取与特定订单相关的所有信息,包括owner_id, user_1, user_2用户名。

我想要达到的结果如下:

owner_id | owner_username | user_1_id | user_1_username | user_2_id | user_2_username | order_total
----------------------------------------------------------------------------------------------------
   1     |     John       |    2      |     Robert      |    3      |     Sally       |     100

到目前为止,我可以通过这样的查询获得所需的一切:

SELECT o.owner_id AS owner_id, (SELECT username FROM Users where user_id = 1) AS owner_username,
       o.user_1 AS user_1_id, (SELECT username FROM Users where user_id = 2) AS user_1_username,
       o.user_2 AS user_2_id, (SELECT username FROM Users where user_id = 3) AS user_2_username,
       o.amount AS order_total
FROM Orders.o
WHERE o.order_id = 'AAA'

这是一个检索第一订单信息的示例。

我对获取每个用户名所要做的内部查询不是很满意,我认为这有点丑陋。

有没有更优雅或更高性能的方法来获取用户名?

谢谢

迪帕克·帕瓦(Deepak Pawar)|

这可能会有所帮助

SELECT od.*,
       U1.username AS 'User_1_Name',
       U2.username AS 'User_2_Name',
       U3.username AS 'User_3_Name'
FROM   Orders od
       LEFT OUTER JOIN Users U1
                    ON od.Owner_Id = U1.User_Id
       LEFT OUTER JOIN Users U2
                    ON od.User_1 = U2.User_Id
       LEFT OUTER JOIN Users U3
                    ON od.User_2 = U3.User_Id
WHERE  order_id = 'AAA' 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同一张桌子上的多个LEFT JOINS有效吗?

来自分类Dev

同一张桌子上的多个LEFT JOINS有效吗?

来自分类Dev

同一张桌子上有多个计数(Laravel)

来自分类Dev

MySQL:在同一张表上有内部查询引用外部列

来自分类Dev

Symfony 2 Multiple Selects在同一张桌子上有计数吗?

来自分类Dev

同一张表中有大量内部联接

来自分类Dev

在同一张桌子上多次查询

来自分类Dev

同一张表上的两个查询显示同一行具有不同的值?

来自分类Dev

有条件地联接同一张桌子两次

来自分类Dev

在同一张桌子上进行多对多关系的最佳方法

来自分类Dev

为什么我的搜索字段在一张桌子上有效,而在另一张桌子上无效?

来自分类Dev

如何在一张桌子上对所有行和组进行计数

来自分类Dev

如何在一张桌子上对所有行和组进行计数

来自分类Dev

在laravel的一张桌子上获得父母和孩子关系的最佳方法?

来自分类Dev

我需要一张临时桌子吗?

来自分类Dev

JOIN仅适用于一张桌子吗?

来自分类Dev

一张桌子可以加入两次吗?

来自分类Dev

我在Excel 2007中有一张桌子,我想要一张图表

来自分类Dev

一张桌子有两个不同的任务

来自分类Dev

检查只有一张桌子的可用时间?

来自分类Dev

创建一个新变量-有更好的方法吗?

来自分类Dev

有一个更好的方法吗?重击

来自分类Dev

Rails 4内部连接在同一张桌子上

来自分类Dev

SQL请求,内部联接在同一张桌子上?

来自分类Dev

查询可以使用同一张表中的多个索引吗?

来自分类Dev

在同一张桌子上一对多的关系

来自分类Dev

有没有一种方法可以找到从一张桌子到另一张桌子的缺失数字?(比较)

来自分类Dev

将所有图像放在一张桌子中是不好的做法吗?

来自分类Dev

在同一张桌子上简单的左联接

Related 相关文章

  1. 1

    同一张桌子上的多个LEFT JOINS有效吗?

  2. 2

    同一张桌子上的多个LEFT JOINS有效吗?

  3. 3

    同一张桌子上有多个计数(Laravel)

  4. 4

    MySQL:在同一张表上有内部查询引用外部列

  5. 5

    Symfony 2 Multiple Selects在同一张桌子上有计数吗?

  6. 6

    同一张表中有大量内部联接

  7. 7

    在同一张桌子上多次查询

  8. 8

    同一张表上的两个查询显示同一行具有不同的值?

  9. 9

    有条件地联接同一张桌子两次

  10. 10

    在同一张桌子上进行多对多关系的最佳方法

  11. 11

    为什么我的搜索字段在一张桌子上有效,而在另一张桌子上无效?

  12. 12

    如何在一张桌子上对所有行和组进行计数

  13. 13

    如何在一张桌子上对所有行和组进行计数

  14. 14

    在laravel的一张桌子上获得父母和孩子关系的最佳方法?

  15. 15

    我需要一张临时桌子吗?

  16. 16

    JOIN仅适用于一张桌子吗?

  17. 17

    一张桌子可以加入两次吗?

  18. 18

    我在Excel 2007中有一张桌子,我想要一张图表

  19. 19

    一张桌子有两个不同的任务

  20. 20

    检查只有一张桌子的可用时间?

  21. 21

    创建一个新变量-有更好的方法吗?

  22. 22

    有一个更好的方法吗?重击

  23. 23

    Rails 4内部连接在同一张桌子上

  24. 24

    SQL请求,内部联接在同一张桌子上?

  25. 25

    查询可以使用同一张表中的多个索引吗?

  26. 26

    在同一张桌子上一对多的关系

  27. 27

    有没有一种方法可以找到从一张桌子到另一张桌子的缺失数字?(比较)

  28. 28

    将所有图像放在一张桌子中是不好的做法吗?

  29. 29

    在同一张桌子上简单的左联接

热门标签

归档