同一个表上的两个select查询

xvw2m8pv  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(280)

我正在努力寻找这个问题的答案。
我有一个表,我可以有一个客户的多个订单ID(电子邮件)

email (unique), order_id

我需要查询我传递给客户的任何订单id的位置,它会返回他们所有的订单。
我有两个select查询需要合并到一个查询中以节省加载时间。

SELECT email FROM orders WHERE order_id = '1234567890'

SELECT order_id FROM orders WHERE email = 'email_found_from_first_query'
kqhtkvqz

kqhtkvqz1#

这里可以使用传统的使用方法:

SELECT order_id 
FROM orders 
WHERE email IN (
                SELECT email 
                FROM orders 
                WHERE order_id = '1234567890'
                )

查询有点贵。

ztyzrc3y

ztyzrc3y2#

一种方法使用相关子查询:

select o.order_id
from orders o
where o.email = (select o2.email from orders o2 where order_id = '1234567890')
daupos2t

daupos2t3#

这似乎最适合简单的连接。https://www.mysqltutorial.org/mysql-join/

SELECT orig_order.email, all_orders.order_id
FROM orders as orig_order
JOIN orders as all_orders ON orig_order.email = all_orders.email
WHERE orig_order.order_id = '1234567890'

相关问题