2017-01-02 22 views
0

Aktuelle Tabelle:mysql merge bestimmte Zeilen

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

Ergebnis, das ich will:

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

I id, Preis, Steuer und sku von der erhalten möchten 1. Reihe und dann erhalten Sie die Beschreibung von der 2. Reihe. Wie kann dies erreicht werden?

+1

Interessantes Datenbankdesign? Vielleicht ist das Ihr Problem – RiggsFolly

+0

Es ist fast identisch mit Magento2-Verkaufstabelle. – Brian

+0

Zeilen werden nicht garantiert in beliebiger Reihenfolge angezeigt. Sie verweisen auf die erste und zweite Zeile. Was unterscheidet diese Zeilen? Meinst du das Kleid und Kleid-kleine Reihen? –

Antwort

0

Wie wäre es

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

Sie nicht erklären, wie Sie die zweite Zeile enthält die richtige Beschreibung wissen, so ist dies eine Vermutung.

0

Hier ist Ihre Antwort. Beispiel 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 

halte ich würde auf einen harten Blick zu nehmen, was die id Spalte tut für Ihren Tisch. Könnte es auch entfernen.