【发布时间】:2019-06-20 08:54:50
【问题描述】:
我有一个包含 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
【问题讨论】:
-
如果您有多个地址和联系人,您可能无法获得预期的结果。如果是这样,请使用示例数据和所需结果提出一个新问题。