MySQL: получение данных из связанных таблиц

0

Я ищу помощь в приобретении и отображении информации из связанных таблиц в MySQL. У меня две таблицы:

  1. "table1" с идентификаторами столбцов, именем, фамилией
  2. "table2" с идентификатором столбцов, телефоном

Они связаны столбцами id.

Я пытаюсь показать имя, фамилию и телефон вместе. В настоящее время я использую:

SELECT имя, фамилия, телефон FROM table1, table2 WHERE table1.id = table2.id

Тем не менее, я чувствую, что я не правильно использую отношения между таблицами, так как считаю, что это будет работать и между несвязанными таблицами.

Кроме того, не каждый идентификатор из таблицы1 имеет запись в таблице2, то есть не у всех есть номер телефона. Вышеуказанный метод показывает только те идентификаторы, которые существуют как в таблице1, так и в таблице2, в то время как я хочу отображать данные тех, у кого нет номера телефона, либо пустым пространством, либо "N/A" в столбце телефона.

Приветствуются любые советы о том, как правильно отображать данные.

  • 0
    таблица 2 не имеет первичного уникального ключа? я ожидал бы, что это будет 'id' в таблице 2 и для него будет иметь другой ключ, чтобы присоединиться к
  • 0
    @smith Смит, да, извини! Table2 имеет свой уникальный ключ, в то время как идентификаторы в обоих связаны.
Теги:
search
display
relationship

1 ответ

1
Лучший ответ

Для объединения двух таблиц необходимо использовать оператор LEFT OUTER JOIN. LEFT OUTER JOIN прежнему будет отображать записи из table1 даже если в table2 нет id соответствия. Что-то вроде:

SELECT
    table1.name,
    table1.surname,
    table2.phone
FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.id

Дополнительная информация: https://www.w3schools.com/sql/sql_join_left.asp

  • 0
    Это сработало, спасибо вам большое! Это действительно круто. Теперь я чувствую себя глупо, потому что думаю, что их будет достаточно в phpMyAdmin.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню