Как получить или объединить данные из другой таблицы с заданным идентификатором из 2 столбцов

#mysql #sql

Вопрос:

Для этого случая у меня есть три таблицы, использующие mysql в phpMyAdmin. Первый-это Provice, второй — Город, а третий-Пользователь.

 Province table: id name --------------   1 province1   2 province2   3 province3   City table: id name  ------------   1 city1   2 city2   3 city3   User table: id name addressB cityA provinceA addressB cityB provinceB ----------------------------------------------------------------------------------  1 Adam Mango street 1 1 banana street 2 1  2 Antonio Peach street 3 2 banana street 2 1  

Мой вопрос таков: как я могу присоединиться к таблице провинций и городов с помощью запроса, чтобы получить такой результат:

 id name addressA cityA provinceA addressB cityB provinceB -------------------------------------------------------------------------------------  1 Adam Mango street city1 province1 banana street city2 province1  2 Antonio Peach street city3 province2 Guava street city2 province1  

Должен ли я разделить cityA, cityB, ProvinceA и ProvinceB из таблицы пользователей на независимую таблицу? Или есть какие-то вопросы, о которых я никогда раньше не думал?

Ответ №1:

Запрос должен присоединиться к таблице ссылок один раз для каждого столбца

 select  a.*, ca.name cityA, cb.name cityB, pa.name provinceA, pb.name provinceB from user_table a join city_table ca on a.cityA = ca.id join city_table cb on a.cityB = cb.id join province_table pa on a.provinceA = pa.id join province_table pb on a.provinceB = pb.id ;