Mysql 如何根据其他选择的结果进行查询以选择某个内容?
我有三张桌子:订单、采购订单和销售订单。表orders有两列:外键order\u id和order\u numb。Order\u id是采购订单或销售订单的id,Order\u numb在这里只是为了说明它是关于什么订单的 订单编号=1这是采购订单 订单号=2这是销售订单 因此,我需要从表订单中进行选择,对于每一行,检查其订单号是否为1或订单号是否为2,并根据该结果根据其id从采购订单或销售订单中进行选择 我可以用两个查询来实现,但我想用一个查询来实现Mysql 如何根据其他选择的结果进行查询以选择某个内容?,mysql,sql,Mysql,Sql,我有三张桌子:订单、采购订单和销售订单。表orders有两列:外键order\u id和order\u numb。Order\u id是采购订单或销售订单的id,Order\u numb在这里只是为了说明它是关于什么订单的 订单编号=1这是采购订单 订单号=2这是销售订单 因此,我需要从表订单中进行选择,对于每一行,检查其订单号是否为1或订单号是否为2,并根据该结果根据其id从采购订单或销售订单中进行选择 我可以用两个查询来实现,但我想用一个查询来实现 ORDER | order_id | a
ORDER
| order_id | action_numb |
--------------------------
| 51 | 1 |
--------------------------
| 40 | 2 |
--------------------------
| 41 | 2 |
--------------------------
| 52 | 1 |
PURCHASE_ORDER
| id | other_columns |
----------------------
| 51 | something |
----------------------
| 52 | something |
SALE_ORDER
| id | other_columns |
----------------------
| 40 | something |
----------------------
| 41 | something |
----------------------
假设从两个表中选择相同的列,则可以使用UNION来完成任务
SELECT o.id,<other-columns>
FROM order o INNER JOIN purchase_order po
ON o.id = po.id
WHERE o.action_numb = 1
UNION
SELECT o.id,<other-columns>
FROM order o INNER JOIN sale_order so
ON o.id = so.id
WHERE o.action_numb = 2
假设从两个表中选择相同的列,则可以使用UNION来完成任务
SELECT o.id,<other-columns>
FROM order o INNER JOIN purchase_order po
ON o.id = po.id
WHERE o.action_numb = 1
UNION
SELECT o.id,<other-columns>
FROM order o INNER JOIN sale_order so
ON o.id = so.id
WHERE o.action_numb = 2
我没有得到任何结果我没有得到任何结果