Как объединить данные из трех разных таблиц?

#mysql #sql #join

#mysql #sql #Присоединиться

Вопрос:

У меня есть три похожие таблицы с одинаковыми полями, и одно поле имеет одинаковые значения. Нравится

 Table1(Column1:USA,Column2:200)

Table2(Column1:USA,Column2:400)

Table3(Column1:USA,Column2:500)
  

Я хочу запросить данные следующим образом:

 ColumnA  Table1Value   Table2Value   Table3Value

USA        200           400           500
  

Я знаю, что база данных не нормализована, но я должен использовать то же самое, поскольку многие части приложения уже используют эту структуру

Ответ №1:

 Select
  t1.Column1 AS ColumnA,
  t1.Column2 AS Table1Value,
  t2.Column2 AS Table2Value,
  t3.Column3 AS Table3Value
FROM Table1 t1
JOIN Table2 t2 ON t2.Column1 = t1.Column1
JOIN Table3 t3 ON t3.Column1 = t1.Column1
  

Комментарии:

1. Это будет работать до тех пор, пока в table2 и table 3 будет по 1 записи, соответствующей table1. Если в них может не быть записей, тогда вам нужны левые соединения. Если у них может быть более одной совпадающей записи, то вам может потребоваться дальнейшее разделение требований.

2. @HLGEM… Я понимаю это полностью, но ничего из этого не было указано OP. Я просто предоставлял сценарий, который будет работать непосредственно с предоставленными данными и требованиями.

3. О, я не говорю, что ваш ответ плохой, просто сообщаю оператору, что могут быть другие соображения, и его проблема может быть более сложной. Я поддержал вас.