Не знал, как правильно написать вопрос в заголовке, но я постараюсь объяснить, чего я пытаюсь достичь.
Это мои родительские таблицы:
hgs_meaning hgs_word_types hgs_transliterations
+----+---------+ +----+-----------+ +----+-----------------+
| id | meaning | | id | word_type | | id | transliteration |
+----+---------+ +----+-----------+ +----+-----------------+
| 3 | man | | 4 | noun | | 5 | mnjw |
+----+---------+ +----+-----------+ +----+-----------------+
Это мои соединительные таблицы:
junc_meaning_word_type
+----+------------+--------------+
| id | meaning_id | word_type_id |
+----+------------+--------------+
| 2 | 3 | 4 |
+----+------------+--------------+
junc_transliteration_meaning_word_type
+----+--------------------+----------------------+
| id | transliteration_id | meaning_word_type_id |
+----+--------------------+----------------------+
| 1 | 5 | 2 |
+----+--------------------+----------------------+
Я знаю, как сделать запрос SELECT JOIN
, чтобы получить результаты для таблицы junc_meaning_word_type
, но не для junc_transliteration_meaning_word_type
Я знаю, как получить этот результат:
+----+-----------------+-------------------+
| id | transliteration | meaning_word_type |
+----+-----------------+-------------------+
| 1 | mnjw | 2 |
+----+-----------------+-------------------+
Я пытаюсь добиться этого результата:
+----+--------------------+------------+--------------+
| id | transliteration_id | meaning_id | word_type_id |
+----+--------------------+------------+--------------+
| 1 | mnjw | man | noun |
+----+--------------------+------------+--------------+
Как это можно сделать. Я предполагаю, что мне нужно использовать вложенные SELECT
запросы (подзапросы) или несколько JOIN
s, но я не знаю, как создать такой запрос.
Вот мои вопросы:
/* hgs_meanings and hgs_word_types join to junc_meaning_word_type */
SELECT junc_meaning_word_type.id, hgs_word_types.word_type, hgs_meanings.meaning
FROM junc_meaning_word_type
JOIN hgs_word_types ON junc_meaning_word_type.word_type_id = hgs_word_types.id
JOIN hgs_meanings ON junc_meaning_word_type.meaning_id = hgs_meanings.id
/* hgs_transliterations and junc_meaning_word_type join to junc_transliteration_meaning */
SELECT junc_transliteration_meaning.id, hgs_transliterations.transliteration, junc_meaning_word_type.id
FROM junc_transliteration_meaning
JOIN hgs_transliterations ON junc_transliteration_meaning.transliteration_id = hgs_transliterations.id
JOIN junc_meaning_word_type ON junc_transliteration_meaning.meaning_word_type_id = junc_meaning_word_type.id
Любая помощь будет оценена.