Как отобразить первичный ключ из соединительной таблицы в таблице результатов после запроса JOIN? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть модель реляционной базы данных. Поскольку я изучаю запросы MySQL для такого рода проектирования баз данных, я знаю основы, но я дошел до проблемы.

Это мои таблицы:

 hgs_word_types           hgs_meanings
 +----+-----------+       +----+-----------+
 | id | word_type |       | id | meaning   |
 +----+-----------+       +----+-----------+
 | 1  | noun      |       | 1  | man       |
 +----+-----------+       +----+-----------+

 junc_meaning_word_type
 +----+------------+--------------+
 | id | meaning_id | word_type_id |
 +----+------------+--------------+
 | 1  | 1          | 1            |
 +----+------------+--------------+ 

Это мой запрос:

SELECT 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

Я получаю такой результат:

+---------------------+
| meaning | word_type |
+---------+-----------+
| man     | noun      |
+---------+-----------+

Как показать junc_meaning_word_type.id в результате этого запроса в качестве третьего столбца? Как сделать что-то вроде этого:

+----+---------------------+
| id | meaning | word_type |
+----+---------+-----------+
| 1  | man     | noun      |
+----+---------+-----------+

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете просто выбрать необходимые столбцы.В этом случае вам также необходимо добавить junc_meaning_word_type.id к предложению SELECT.

Также рекомендуется использовать Aliasing в случае многостоловых запросов для кода.ясность (читабельность) и избегание неоднозначного поведения.

SELECT junc.id, 
       typ.word_type, 
       mean.meaning
FROM junc_meaning_word_type AS junc
JOIN hgs_word_types AS typ
  ON junc.word_type_id = typ.id
JOIN hgs_meanings AS mean 
  ON junc.meaning_id = mean.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...