我有兩張表。一臺看起來像一對多加入mysql
ORDER_ID | SHOPPER_NAME | DATE
-------------------------------
001A | Marianna | 08/09/2012
002A | Jason | 80/08/2012
,並具有順序
ORDER_ID | DATA_CODE | DATA_VALUE
----------------------------------
001A | MILK_MONEY | 1.20
001A | NUM_EGGS | 22
002A | TOTAL_SPENT | 32.43
001A | TOTAL_SPENT | 42.13
我需要得到一些數據代碼的特定順序的信息另一個表。如何在一行中選擇SHOPPER_NAME,MILK_MONEY(DATA_VALUE,其中DATA_CODE ='MILK_MONEY'),TOTAL_SPENT和NUM_EGGS?我有工作在那裏我做3加入像
SELECT SHOPPER_NAME,
MILK.DATA_VALUE,
EGGS.DATA_VALUE,
TOTAL.DATA_VALUE
FROM GROCERIES G
JOIN ORDER_INFO MILK ON MILK.ORDER_ID=G.ORDER_ID
JOIN ORDER_INFO EGGS ON EGGS.ORDER_ID=G.ORDER_ID
JOIN ORDER_INFO TOTAL ON TOTAL.ORDER_ID=G.ORDER_ID
然而,這開始看起來醜陋,它不覺得權利被進行多次在同一個表連接。有沒有更有效的方法來做到這一點?
謝謝!
這不起作用。它向我返回許多行,對於每個訂單,它爲每個DATA_CODE返回一行。這個例子是簡化的,但我真的有大約35個數據代碼 – Marianna 2012-08-09 19:59:40