Я пытаюсь запросить 2 таблицы, используя следующую инструкцию sql, пытаясь вернуть все записи из каждой таблицы, содержащей конкретный идентификатор.
SELECT Phone.Phone, Email.Email FROM Contacts.Phone, Contacts.Email
WHERE Phone.ContactId = :contactId AND Email.ContactId = :contactId
Contacts.Phone
Таблица содержит 2 телефонных номера дляданный идентификатор и Contacts.Email
содержит 1 электронное письмо для данного идентификатора.Используя приведенный выше SQL-запрос, я получаю следующие строки.Конечно, это всего лишь пример ситуации, когда мой набор результатов из каждой таблицы совпадает по количеству строк.
Row 1: 555-555-5555 - email@email.com
Row 2: 666-666-6666 - email@email.com
Письмо повторяется, чтобы заполнить вторую строку, когда яя пытаюсь получить:
Row 1: 555-555-5555 - email@email.com
Row 2: 666-666-6666 - NULL
Я думаю, мне нужно использовать UNION
, чтобы каким-то образом объединить таблицы, но я не могу понять, как именно написать оператор sql.Другой вариант - выполнить 2 отдельных запроса SQL, что было бы проще, но я считаю, что с точки зрения производительности лучше собрать все данные, которые мне нужны, в одном запросе.
Я использую MySQL.