【发布时间】:2016-10-21 17:51:33
【问题描述】:
我有一个包含 id、first、last 和 Identification 列的联系人表。试图让名称显示在更大的连接中。加入两列时我无法显示它。
表格:
检查 ID Order_Id Inspector_Id
联系人 ID 名 姓 订购者 督察
这是我的选择:
$sql = " SELECT
Inspections.Id,
Inspections.Orderer_Id,
Inspections.Inspector_Id,
Contacts.Id
Contacts.First_Name AS OFirst,
Contacts.Last_Name AS OLast,
Contacts.First_Name AS IFirst,
Contacts.Last_Name AS ILast,
FROM Inspections
JOIN Contacts ON Inspections.Orderer_Id && Inspections.Inspector_Id=Contacts.Id
WHERE
Inspections.Id = " . $trigger . ";";
这只是最新的尝试。我尝试了多种加入他们的方法,但我想我只是很难翻译我在搜索时找到的代码。任何帮助将不胜感激!
【问题讨论】:
-
三列中的值是否相同?您需要指定两个单独的表达式。如
Inspections.orderer_id = Contacts.id AND inspections.inspector_id=contacts.id。但如果这是你想要的情况,我建议只加入 1 并在 where 子句中比较Inspections.orderer_id = Inspections.inspector_id。 -
您的连接条件语法无效:
Inspections.Orderer_Id不是布尔表达式,我相信您的意思是Inspections.Orderer_Id =Contacts.Id。另外&&不是有效的SQL,你需要使用AND -
@jmoerdyk 而
AND是传统的SQL,mysql 允许&&和||在表达式中。 manual -
抱歉,使用 MSSQL 这么久了,我的 MySQL 生锈了:P
-
Orderer_Id 和 Inspector_Id 中的值都指向 Contacts.Id。