Ich versuche, "Eltern" -Noten zurückzugeben, wobei die from_person_id = 2. Ich möchte auch alle untergeordneten Zeilen der "Eltern" -Note zurückgeben.MySQL Weitere Zeilen in derselben Tabelle auswählen
- A "Eltern" Notiz hat eine parent_note_id von 0.
- Ein "Kind" Anmerkung parent_note_id gleich ihrer "Eltern" Note des thread_note_id hat.
- Beide "Eltern" und "Kind" Notizen haben die gleiche thread_note_id.
Unten ist ein Beispiel für 4 Zeilen aus der Anmerkungstabelle. Meine Abfrage sollte alle 4 dieser Notizen zurückgeben. Stattdessen gibt es nur einen zurück.
mysql> SELECT * FROM notes WHERE note_id <= 4;
+---------+----------------+----------------+----------------+
| note_id | parent_note_id | thread_note_id | from_person_id |
+---------+----------------+----------------+----------------+
| 1 | 0 | 1 | 2 |
| 2 | 1 | 1 | 5 |
| 3 | 1 | 1 | 5 |
| 4 | 1 | 1 | 5 |
+---------+----------------+----------------+----------------+
4 rows in set (0.00 sec)
mysql> SELECT DISTINCT n.*
-> FROM notes as n
-> JOIN notes as n2 on n2.thread_note_id = n.thread_note_id
-> WHERE n.from_person_id = 2
-> AND n.parent_note_id = 0;
+---------+----------------+----------------+----------------+
| note_id | parent_note_id | thread_note_id | from_person_id |
+---------+----------------+----------------+----------------+
| 1 | 0 | 1 | 2 |
+---------+----------------+----------------+----------------+
1 row in set (0.00 sec)
dachte ich, einen Weg aus es mit zwei Sub-Abfragen zu tun, aber ich versuche, mit Unterabfragen in MySQL zu vermeiden.
Jeder hat eine Empfehlung, wie die Abfrage abgerufen werden soll, um die übergeordnete Notiz und alle seine untergeordneten Elemente, die JOIN anstelle von Unterabfragen verwenden, zurückzugeben?
Warum können Sie nicht einfach alle Zeilen mit der gleichen 'thread_note_id' zurückgeben? Es scheint mir, dass dies zu Ihrem gewünschten Ergebnis passen sollte. –
Ich möchte nur die Notizen, wo die "Eltern" -Note eine from_person_id von 2 hat. Ich bin nicht in der Lage, eine Möglichkeit, die Kinder zu bekommen, da sie unterschiedliche from_person_id haben. – Daryl