2017-01-02 41 views
0

當前表:MySQL的合併具體的行

╔════════════════════════════════════════╗ 
║ id ║ price ║ tax ║ sku ║ description ║ 
╠════════════════════════════════════════╣ 
║ 123 ║ 10 ║ 1 ║ sku1 ║ Dress  ║ 
║ 123 ║ 0  ║ 0 ║ sku1 ║ Dress-Small ║ 
╚════════════════════════════════════════╝ 

結果,我想:

╔════════════════════════════════════════════╗ 
║ id ║ price ║ tax ║ sku ║ description ║ 
╠════════════════════════════════════════════╣ 
║ 123 ║ 10  ║ 1 ║ sku1 ║ Dress-Small ║ 
╚════════════════════════════════════════════╝ 

我想ID價格SKU從第一排,然後從第二排獲取說明。這怎麼能實現?

+1

有趣的數據庫設計?也許這是你的問題 – RiggsFolly

+0

這與Magento2銷售表幾乎一樣。 – Brian

+0

行不保證以任何順序顯示。你正在引用第一行和第二行。什麼區別這些行?你是說裙子和裙子 - 小排? –

回答

0

如何

SELECT MAX(id) id, 
      MAX(price) price, 
      MAX(tax) tax, 
      sku1, 
      MAX(description) description 
     FROM Table 
    GROUP BY sku1 

你沒有解釋你如何知道第二行包含正確的描述,所以這是一個猜測。

0

這是你的答案。例如SQL Fiddle

SELECT A.id, A.price, A.tax, A.sku, B.Description 
FROM (
    SELECT * 
    FROM MyTable 
    WHERE description = 'Dress' 
) AS A 
LEFT JOIN (
    SELECT * 
    FROM MyTable 
    WHERE description = 'Dress-Small' 
) AS B 
ON A.ID = B.ID 

我會考慮在什麼id柱確實爲你的餐桌很難看。不妨將它刪除。