2015-10-06 20 views
5

i zwei Tabellen habenWie kann ich Doppelarbeit vermeiden, während zwei Tabellen verknüpft

1. test 1 

    2. test 2 

erste Tabelle hat

**id** - **name** 

1  - kerala 

2  - Tamilnadu 

Zweite Tabelle

**name** - **jid** 

    value 1 - 1 

    value 2 - 1 

    value 3 - 1 

    value 4 - 1 

    value 5 - 2 

Meine Suche -

SELECT t1.name, t2.name 
FROM test1 t1 
INNER JOIN test2 t2 
WHERE t1.id = t2.jid 

jetzt bekomme ich dieses Ergebnis

**name** - **name** 

Kerala - value 1 

kerala - value 2 

kerala - value 3 

kerala - value 4 

Aber ich brauche ein Ergebnis wie dieses

Kerala - value 1 

     - value 2 

     - value 3 

     - value 4 

der Wert 'Kerala' wiederholt werden sollte.

+4

Was Sie fordern in der Schicht im Allgemeinen durchgeführt wird, die die Daten anzeigt, nicht derjenige, der es erzeugt. Daher sollten Sie die SQL, die Sie haben, behalten und die Duplikate in verschiedenen Schichten Ihrer Lösung entfernen. –

Antwort

2

können Sie die Benutzergruppe concat method.Pls überprüfen unter Abfrage

SELECT t1.name,GROUP_CONCAT(t2.name) FROM test1 t1 INNER JOIN test2 t2 WHERE t1.id = t2.jid 
+0

Vielen Dank. es funktioniert perfekt :) –

0

Ich glaube nicht, dass es möglich ist - Sie können keine leeren Werte innerhalb der zurückgegebenen Werte haben.

1

Sie können die folgende Abfrage verwenden:

SELECT CASE 
      WHEN t2.name = t3.firstName THEN t1.name 
      ELSE '' 
     END AS name, 
     t2.name 
FROM test1 t1 
INNER JOIN test2 t2 ON t1.id = t2.jid 
INNER JOIN (
    SELECT jid, MIN(name) AS firstName 
    FROM test2 
    GROUP BY jid) AS t3 ON t2.jid = t3.jid 

Dies wird das gewünschte Ergebnis, so lange produzieren als ein einzelner Datensatz mit MIN(name) pro jid in test2 Tabelle.

Demo here

1

versuchen diese

SELECT IF (@oldname = name1,'',name1), 
     name2, 
     @oldname:=name1 AS oldname FROM 
    (
    SELECT t1.name AS name1, t2.name AS name2 
    FROM test1 t1 
    INNER JOIN test2 t2 
    WHERE t1.id = t2.jid 
) t, 
    (SELECT @oldname:='') tmp; 
Verwandte Themen