У меня есть эти таблицы:MySQL Как я могу сделать лучший запрос для подключения двух таблиц через мою таблицу мостов?
слово:
+----+------+
| ID | DATA |
+----+------+
| 1 | jo |
| 2 | yes |
| 3 | jupp |
| 4 | yeah |
| 5 | jepp |
| 6 | joah |
| 7 | ne |
| 8 | nee |
| 9 | no |
| 10 | nope |
| 11 | nah |
+----+------+
заявление:
+----+------+
| ID | DATA |
+----+------+
| 1 | ja |
| 2 | nein |
+----+------+
и стол моста, который соединяет слова из таблицы «слов» с данными из таблицы «заявления» :
мост:
+--------------+---------+
| ID_statement | ID_word |
+--------------+---------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 6 |
| 2 | 8 |
| 2 | 9 |
+--------------+---------+
Я хотел получить SELECT QUERY, чтобы получить все слова, связанные с утверждением «ja».
этот запрос делает работу, но кажется более сложным, чем это должно быть:
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"
);
Интуиция мне подсказывает, что я делаю, что далеко осложнила, но я не могу понять, где сложность заключается. неловко.
другой вопрос, но немного не по теме: как бы описать здесь отношения? один ко многим? отношения между словами и утверждениями кажутся одними для многих (только одно утверждение подходит ко многим словам, которые могут быть синонимами). Единственное, что я узнал только о таблицах моста в контексте отношений «многие ко многим». мой дизайн db ошибочен таким образом? – gauguerilla