1

如果可能的话,我想将两个 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;`

是否可以将它们组合在一起,以便它们一次运行,如果可以,我将如何去做?

4

3 回答 3

1

我认为你需要一个 JOIN :

    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;
于 2012-08-20T18:30:17.313 回答
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;

这将列出车间订单的所有行,每行都重复初始信息。附加字段会告诉您有关修订的信息。

于 2012-08-20T18:32:45.940 回答
0

您提到第二个查询的目的是获取具有相同 shop_order_id 的所有先前记录,但第二个查询过滤了以提供的文本开头的 shop_order_ids,如 LIKE 子句所指定。

如果意图包括所有这些,则两个查询来自同一个表,因此只需获取所有此类条目的所有列的并集。我会按 shop_order_id 订购,以便首先显示没有任何附加后缀文本的那个:

从 shop_order 中选择 so.shop_order_id、so.shop_order_suffix、so.status、so.mfg_method、so.description、so.user_att27、so.user_attr28 所以在哪里 so.shop_order_id LIKE 'ZZ1810C%' AND so.shop_order_suffix='000' ORDER BY so.shop_order_id DESC;

于 2012-08-20T18:36:41.150 回答