2016-05-16 9 views
0

Ich habe eine Tabelle wie folgt aus:Wie wird die zugehörige Zeile ausgewählt, wenn die aktuelle Zeile leer ist?

// mytable 
+----+---------+---------+ 
| id | name | related | 
+----+---------+---------+ 
| 1 | Jack | 1  | 
| 2 |   | 1  | 
| 3 |   | 1  | 
| 4 |   | 2  | 
| 5 | peter | 2  | 
| 6 | peter | 2  | 
| 7 |   | 2  | 
| 8 | jhon | 4  | 
| 9 |   | 3  | 
| 19 | ali  | 3  | 
| 20 |   | 4  | 
| 21 |   | 4  | 
+----+---------+---------+ 

Alles, was ich habe, ist ein ID-Nummer, hier ist meine Frage:

SELECT name FROM mytable WHERE id = :id LIMIT 1 

In meiner Anfrage manchmal name ist leer. Also versuche ich den zugehörigen Namen auszuwählen, wie kann ich das tun? Hier

ist einige Beispiel: (plus erwartete Ausgabe)

:id = 1 
+---------+ 
| Jack | 
+---------+ 

:id = 2 
+---------+ 
| Jack | 
+---------+ 

:id = 21 
+---------+ 
| jhon | 
+---------+ 

:id = 6 
+---------+ 
| peter | 
+---------+ 
+0

@Chris Was? Weißt du, was ich versuche zu bekommen? – Shafizadeh

+0

Erhalten Sie einfach die zugehörige ID aus Ihrem ID-Wert als Unterabfrage und suchen Sie dann die Zeile, in der sie tatsächlich einen Namen hat. – Dresden

Antwort

1

Die Abfrage unten wird mit ids arbeiten 1, 2 und 6. Ich bin mir nicht sicher, wie id 21 gleich jhon zu bekommen. Wenn ich mich viermal an den Tisch setze, komme ich zu Jack. Ich hoffe das hilft.

+0

Verwenden Sie Links Join ist der gute Weg, es zu tun. – sonique

Verwandte Themen