MySql Соединение двух таблиц с несколькими столбцами - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть две таблицы

tblcities:

id |   name        
----------------
 1 | Bahawalpur   
 2 | Multan
 3 | Karachi
 4 | Lahore

tblflights:

id | from_city_id | to_city_id
-------------------------------
 1 |      1       |     2 
 2 |      3       |     4
 3 |      2       |     1

Я хочу объединить таблицы, чтобы оно отображало название города для обоих столбцов, т.е. : from_city_id & to_city_id

что я пробовал:

SELECT *
FROM tblflights
JOIN tblcities
ON tblflights.from_city_id = tblcities.id

результат:

    id | from_city_id | to_city_id |   name 
    --------------------------------------------
     1 |      1       |     2      |  Bahawalpur
     2 |      3       |     4      |  Karachi
     3 |      2       |     1      |  Multan

но я хочу название обоих городов (from_city_id & to_city_id)

Я старался изо всех сил, но не смог найти никакого решения.

Я использую CodeIgniter

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Попробуйте что-то вроде этого.

SELECT tf.id, tc1.name from_city_name, tc2.name to_city_name
FROM tblflights tf
JOIN tblcities tc1
ON tf.from_city_id = tc1.id
JOIN tblcities tc2
ON tf.from_city_id = tc2.id;

Возможно, вам придется удалить дубликаты в зависимости от содержимого таблицы.

0 голосов
/ 12 апреля 2020

Вы можете сделать отдельный подзапрос:

SELECT 
  tblflights.id,
  tblflights.from_city_id,
  tblflights.to_city_id,
  (select distinct name from tblcities where id = tblflights.from_city_id) as from_city,
  (select distinct name from tblcities where id = tblflights.to_city_id) as to_city
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...