我有两个SQL查询,如果可能的话,我想将它们组合成一个。第一个是获取有关车间订单的信息,第二个是从具有相同shop_order_id的所有先前记录中获取修订信息。
第一个查询:
SELECT so.shop_order_id, so.shop_order_suffix, so.status, so.mfg_method, so.description
FROM shop_order so
WHERE so.shop_order_id = 'ZZ1810C'
AND so.shop_order_suffix = '000';`
第二个问题:
SELECT so.user_att27, so.user_att28
FROM shop_order so
WHERE so.shop_order_id LIKE 'ZZ1810C%'
ORDER BY shop_order_suffix DESC;`
是否有可能将它们组合起来以便它们一次运行?如果是这样,我将如何进行它?
答案 0 :(得分:1)
我认为你需要加入:
SELECT so.shop_order_id, so.shop_order_suffix, so.status, so.mfg_method, so.description, so2.user_att27, so2.user_att28
FROM shop_order so
JOIN shop_order so2 ON so2.shop_order_id LIKE 'ZZ1810C%'
WHERE so.shop_order_id = 'ZZ1810C' AND so.shop_order_suffix = '000'
ORDER BY shop_order_suffix DESC;
答案 1 :(得分:0)
您希望结果如何?一个例子会有所帮助。
以下结合了两个条件:
SELECT so.shop_order_id, so.shop_order_suffix, so.status, so.mfg_method,
so.description, so.user_att27, so.user_att28
FROM shop_order so
WHERE so.shop_order_id LIKE 'ZZ1810C%'
ORDER BY shop_order_suffix DESC;
这将列出车间订单的所有行,每行的初始信息重复。其他字段会告诉您有关修订的信息。
答案 2 :(得分:0)
您提到第二个查询的目的是使用SAME shop_order_id获取所有以前的记录,但第二个查询按照LIKE子句的指定过滤shop_order_ids,它们以提供的文本开头。
如果意图包含所有这些,则两个查询来自同一个表,因此只需获取所有此类条目的所有列的并集。我按shop_order_id订购,以便首先显示没有任何附加后缀文本的文本:
SELECT so.shop_order_id,so.shop_order_suffix,so.status,so.mfg_method,so.description,so.user_att27,so.user_attr28 FROM shop_order so so sohere.shop_order_id LIKE'ZZ1810C%'AND so.shop_order_suffix ='000 'ORDER BY so.shop_order_id DESC;