Ich habe eine Tabelle wie folgt aus:Wie bekomme ich verwandte Zeilen aus derselben Tabelle?
// mytable
+----+---------+---------+
| id | related | color |
+----+---------+---------+
| 1 | 1 | red |
| 2 | 1 | blue |
| 3 | 3 | green |
| 4 | 1 | white |
| 5 | 3 | brown |
| 6 | 6 | gray |
| 7 | 3 | black |
| 8 | 1 | orange |
| 9 | 6 | pink |
+----+---------+---------+
Ich habe eine id
Nummer und ich brauche die Farbe von verwandten id
zu erhalten.
Zum Beispiel:
$id = 4; // I need to get `red`
$id = 5; // I need to get `green`
$id = 6; // I need to get `gray`
$id = 9; // I need to get `gray`
ich tun kann, dass durch ein JOIN
verwenden. Etwas wie folgt aus:
SELECT t2.color FROM mytable t1 JOIN mytable t2 ON t1.related = t2.id WHERE t1.id = :id
Meine Abfrage funktioniert wie erwartet .. Aber ich bin nicht sicher, ob ein JOIN
mit dafür, dass Standard ist. Eigentlich versuche ich zu wissen, gibt es einen besseren Ansatz? Oder meins ist ein normaler Weg?
Self-Join ist völlig in Ordnung! – jarlh
@jarlh Ja, ich weiß, es ist in Ordnung. Aber ich möchte wissen, ist es das Beste? Ich meine, wenn Sie das * (als Benutzer mit 15k rep) * tun wollen, verwenden Sie einen Self-Join? Oder ist dieser Ansatz für mich in Ordnung, dass ich nur 1 k rep habe? – stack
Ich würde das selbe Self-Join machen wie du es tust. – jarlh