首页 > 解决方案 > 在一个查询中加入 2 个选择

问题描述

如何在一个查询中加入这 2 个选择?

SELECT st.tracking_id FROM sale_order_line_tracking AS st, sale_order_line AS sol 
WHERE st.order_line_id = sol.id
AND sol.id in %s;

SELECT rsolp.pack_id from rp_sale_order_line_pack AS rsolp, sale_order_line AS sol
WHERE rsolp.sale_line_id = sol.id
AND sol.id in %s;  

标签: sqlpostgresql

解决方案


如果要合并来自两个不同查询的两个结果,可以使用UNION语法:

SELECT st.tracking_id FROM sale_order_line_tracking AS st, sale_order_line AS sol 
WHERE st.order_line_id = sol.id
AND sol.id in %s
UNION
SELECT rsolp.pack_id from rp_sale_order_line_pack AS rsolp, sale_order_line AS sol
WHERE rsolp.sale_line_id = sol.id
AND sol.id in %s;

这将返回一个结果表,但您的查询彼此过于相似,因此更好的选择是JOIN


推荐阅读