LEFT JOIN 3 таблицы с пропущенными полями (NULL) - PullRequest
0 голосов
/ 27 января 2019

У меня есть база данных с 3 таблицами: компания, адрес, контакт, которая в основном содержит некоторые данные о самой компании и ее адрес и контактную информацию соответственно.Теперь не все компании имеют адресную информацию и контактную информацию.Я пытаюсь запросить базу данных, чтобы показать список всех компаний: таблица с названием компании, ее адрес и контактный телефон.Поэтому я использую такой запрос:

SELECT company.inn, company.name, company.ceo, address.city, contact.phone
    FROM company 
    JOIN address
    JOIN contact
    ON company.id = address.company_id AND company.id = contact.company_id

Прекрасно работает, но не возвращает компаний, у которых нет ни адреса, ни контакта, ни того и другого.Поэтому я попытался ввести команду левого соединения:

SELECT company.inn, company.name, company.ceo, address.city, contact.phone
    FROM company 
    LEFT JOIN address
    LEFT JOIN contact
    ON company.id = address.company_id AND company.id = contact.company_id

И я получаю эту ошибку:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

1 Ответ

0 голосов
/ 27 января 2019
SELECT company.inn, company.name, company.ceo, address.city, contact.phone
FROM company 
LEFT JOIN address
ON company.id = address.company_id
LEFT JOIN contact 
ON company.id = contact.company_id

ON должно быть определено после JOIN.Вы можете прочитать документ здесь https://dev.mysql.com/doc/en/join.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...