How can I join these 2 selects' in one query?
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;
if you want to merge two results from two different queries you can use UNION
syntax :
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;
this will return you one result table but your queries are too similar to each other , thus better option would be JOIN
You can try using JOIN
SELECT st.tracking_id,rsolp.pack_id
FROM sale_order_line_tracking AS st join sale_order_line AS sol
on st.order_line_id = sol.id join rp_sale_order_line_pack AS rsolp
on rsolp.sale_line_id = sol.id
AND sol.id in %s;
Following can be one of the join query. But now depends whether you want a LEFT or RIGHT join accordingly you can modify the query.
Also you can change the sequence of whether to use tracking table first or sales order table first, to make it relevant to your business case.
SELECT st.tracking_id,rsolp.pack_id
FROM sale_order_line_tracking AS st Join sale_order_line AS sol
on st.order_line_id = sol.id
Join rp_sale_order_line_pack AS rsolp on rsolp.sale_line_id = sol.id
WHERE sol.id in %s;
Do a double LEFT JOIN
:
SELECT sol.*, st.tracking_id, rsolp.pack_id
FROM sale_order_line AS sol
LEFT JOIN sale_order_line_tracking AS st
ON st.order_line_id = sol.id
LEFT JOIN rp_sale_order_line_pack AS rsolp
ON rsolp.sale_line_id = sol.id
WHERE sol.id in %s;
you need to run in this way:
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;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.