0
我有三個表格需要內聯以形成第三個表格。SQL根據分層標準進行連接
第一個表(基本)看起來是這樣的:
+----------+----------+---------+------------+
| Order No | Supplier | Product | Date |
+----------+----------+---------+------------+
| 100 | SuppCo | Shirt | 25.09.2014 |
| 101 | SuppCo | Pants | 25.09.2014 |
| 102 | SuppCo | Shirt | 25.09.2014 |
+----------+----------+---------+------------+
第二個表(色彩)看起來是這樣的:
+------+--------+
| ID | Color |
+------+--------+
| 1ABC | yellow |
| 1ABD | red |
| 1ABE | pink |
| 1ABF | orange |
| 1ABG | teal |
| 2DEG | green |
| 3HIK | blue |
+------+--------+
第三個表(詳細信息)是這樣的:
+------+----------+-----------+
| ID | Order No | Order Ext |
+------+----------+-----------+
| 1ABC | 100 | - |
| 1ABD | 100 | Prime |
| 1ABE | 100 | Basic1 |
| 1ABF | 100 | Basic2 |
| 1ABG | 100 | Basic3 |
+------+----------+-----------+
決賽桌應該是這樣的:
+----------+------+-------+------------+
| Order No | ID | Color | Date |
+----------+------+-------+------------+
| 100 | 1ABD | red | 25.09.2014 |
| 101 | 2DEG | green | 25.09.2014 |
| 102 | 3HIK | blue | 25.09.2014 |
+----------+------+-------+------------+
該表基於Basic
表,其中使用了訂單號和日期。 從訂單號碼中,我想從Detail
表中獲取ID。 Basic
和Detail
之間
的加入應具備以下條件: 加入相同的順序號,並獲得ID其中Order Ext = 'Prime'
,如果總理不作爲擴展名,然後Order Ext = '-'
存在,如果不存在,然後採取任何其餘的(這點無關緊要)。 在此之後,應該採取ID並從Color
表獲得正確的行。
我在考慮Row Over,但這是相當資源枯竭的問題,所以我在考慮是否有更高效的方法來做到這一點?