2011-10-03 83 views
0

有人可以幫我將這些表格加入到表格中,並提取PRODUCT_ID,PRODUCT_CODE,PRODUCT_NAME和LAST_ORDER_DATE,因爲對於僅使用SQL的MYSQL沒有太多經驗。使用Max命令加入1或2個表格

我不確定我是否需要第二張表,或者只能在ODBC_ORDER_LINE_ALL中使用MAX。

表1

Name: ODBC_ORDER_LINE_ALL 

ORDER_LINE_ID 

ORDER_LINE_DATE 

ORDER_LINE_PRODUCT_ID 

ORDER_LINE_PRODUCT_CODE 

ORDER_LINE_PRODUCT_NAME 

表2

Name: ODBC_PRODUCT_ALL 

PRODUCT_ID 

PRODUCT_CODE 

PRODUCT_NAME 

預先感謝。

羅伊

+1

什麼你說*的意思是「沒有與SQL,僅在MySQL多少經驗」 *? * MySQL *是產品的名稱,* SQL *是在MySQL中也使用的語言的名稱(也就是特定的SQL風格,但通常仍稱爲「SQL」)。你是否真的有意要說'SQL Server'(儘管人們會混淆這兩個),這與SQL'不一樣嗎? –

回答

0

您是否嘗試過簡單的分組,如:

SELECT ORDER_LINE_PRODUCT_ID,ORDER_LINE_PRODUCT_CODE,ORDER_LINE_PRODUCT_NAME, MAX(ORDER_LINE_DATE) 
FROM ODBC_ORDER_LINE_ALL 
GROUP BY ORDER_LINE_PRODUCT_ID,ORDER_LINE_PRODUCT_CODE,ORDER_LINE_PRODUCT_NAME 
0

你並不需要第二個表。

與您當前執行的查詢是

SELECT ORDER_LINE_PRODUCT_ID, 
     ORDER_LINE_PRODUCT_CODE, 
     ORDER_LINE_PRODUCT_NAME, 
     MAX(ORDER_LINE_DATE) 
FROM ODBC_ORDER_LINE_ALL 
GROUP BY ORDER_LINE_PRODUCT_ID 

但是,需要規範化的第一個表。 假設您的訂單行表中的產品ID,產品代碼和產品名稱參考產品表中的相同值,
(並且單個產品ID僅對應於一個產品代碼和名稱),
您的表結構爲Table 1: ODBC_ORDER_LINE_ALL應該

ORDER_LINE_ID 
ORDER_LINE_DATE 
Foreign key (ORDER_LINE_PRODUCT_ID) references ODBC_PRODUCT_ALL(PRODUCT_ID) 

在這種情況下,查詢將

SELECT ORDER_LINE_PRODUCT_ID, PRODUCT_CODE, PRODUCT_NAME, MAX(ORDER_LINE_DATE), 
FROM ODBC_ORDER_LINE_ALL 
    JOIN ODBC_PRODUCT_ALL 
    ON ORDER_LINE_PRODUCT_ID = PRODUCT_ID 
GROUP BY ORDER_LINE_PRODUCT_ID