Ich habe diese Tabellen:MySQL Wie kann ich eine bessere Abfrage erstellen, um zwei Tabellen über meine Bridge-Tabelle zu verbinden?
Worte:
+----+------+
| ID | DATA |
+----+------+
| 1 | jo |
| 2 | yes |
| 3 | jupp |
| 4 | yeah |
| 5 | jepp |
| 6 | joah |
| 7 | ne |
| 8 | nee |
| 9 | no |
| 10 | nope |
| 11 | nah |
+----+------+
Aussagen:
+----+------+
| ID | DATA |
+----+------+
| 1 | ja |
| 2 | nein |
+----+------+
und eine Brücke Tabelle, die die Worte aus der Tabelle „Worten“ mit den Daten aus der Tabelle „Aussagen“ verbindet :
Brücke:
+--------------+---------+
| ID_statement | ID_word |
+--------------+---------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 6 |
| 2 | 8 |
| 2 | 9 |
+--------------+---------+
Ich wollte eine SELECT-Abfrage erhalten, um alle Wörter mit der Aussage "ja" verbunden zu bekommen.
diese Abfrage macht den Job, aber es scheint komplizierter als es sein sollte:
SELECT words.DATA FROM words
JOIN bridge ON words.ID = bridge.ID_word
JOIN statements ON statements.ID = bridge.ID_statement
WHERE statements.ID = (
SELECT ID FROM statements WHERE statements.DATA = "ja"
);
Intuition sagt mir, dass ich so weit zu comlicated tue, aber ich kann nicht herausfinden, wo die Komplikationsrate liegt. umständlich.
eine andere Frage, aber etwas abseits des Themas wäre: wie würde man die Beziehung hier beschreiben? Eins zu viele? die Beziehung zwischen Worten und Aussagen scheint eins zu viele zu sein (nur eine Aussage passt zu vielen Wörtern, die Synonyme sein können). Das einzige ist, dass ich im Kontext von Viele-zu-Viele-Beziehungen nur über Bridge-Tabellen gelernt habe. ist mein DB-Design auf diese Weise fehlerhaft? – gauguerilla