私には、orders、purchase_order、sale_orderの3つのテーブルがあります。テーブルordersには、外部キーorder_idとorder_numbの2つの列があります。Order_idはpurchase_orderまたはsale_orderのIDであり、order_numbは、注文が何であるかを示すためだけにここにあります。
order_numb = 1それはpurchase_orderですorder_numb = 2それはsale_orderです
したがって、テーブルの注文から選択する必要があり、すべての行について、order_numb = 1またはorder_numb = 2であるかどうかを確認し、その結果に基づいて、IDに基づいてpurchase_orderまたはsale_orderから選択します。
2つのクエリで機能させることはできますが、1つで実行したいと思います。
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 |
----------------------
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加