Ich habe zwei Tabellen, Category
und Member
:SQL: Kombinieren Sie Kategorien und die Mitglieder in einer Auswahlausgang
Category: Member:
+--Id--+--Name--+ +--Id--+--Name--+--CategoryId--+
| 1 | Cat1 | | 1 | Mem1 | 2 |
| 2 | Cat2 | | 2 | Mem2 | 2 |
| 3 | Cat3 | | 3 | Mem3 | 1 |
+------+--------+ | 4 | Mem4 | 3 |
| 5 | Mem5 | 1 |
| 6 | Mem6 | 3 |
+------+--------+--------------+
Ich möchte eine Abfrage haben, die die folgende Ausgabe gibt:
Combined:
+--Name--+--IsCategory--+
| Cat1 | True |
| Mem3 | False |
| Mem5 | False |
| Cat2 | True |
| Mem1 | False |
| Mem2 | False |
| Cat3 | True |
| Mem4 | False |
| Mem6 | False |
+--------+--------------+
I weiß, wie man JOIN benutzt, um jedes Mitglied mit seinem Kategorienamen in einer Zeile auszugeben, und wie man UNION benutzt, um alle Kategorien und Mitglieder in einer Ausgabe aufzulisten. Kann ich eine Kombination dieser beiden Befehle verwenden, um die gewünschte Ausgabe zu erzielen? Oder muss ich irgendwie eine FOR EACH-Schleife machen? Ist es überhaupt möglich zu bekommen, was ich will?
EDIT: Die Bestellung Cat1, Mem3, Mem5, Cat2, Mem1, Mem2,...
ist wichtig für mich.
Vielen Dank. Die Reihenfolge (Kategoriename, Mitgliedsnamen, Kategoriename, Mitgliedsnamen, ...) ist wichtig. Siehe die bearbeitete Antwort. –
@Tell mir einen richtigen Grund, dass, wie diese Reihenfolge kommt, brauche ich Erklärung Cat1, Mem3, Mem5, Cat2, Mem1, Mem2 .. @ Michael Hilus – Chanukya
Die Reihenfolge muss so sein: 'Cat1' ist die erste Kategorie gefolgt von all seine Mitglieder 'Mem3' und' Mem3'. 'Cat2' ist die zweite Kategorie gefolgt von seinen Mitgliedern' Mem1' und 'Mem2' und so weiter ... –