我有两个表,我正在尝试组合并从其中一个表中获取数据,具体取决于查询。
我的sql查询:(哪个不起作用)
SELECT *
FROM contacts
INNER JOIN users
(ON contacts.user_id_sender = users.id
WHERE contacts.user_id_sender = '$user_id' AND contacts.status = 1)
OR
(ON contacts.user_id_receiver = users.id
WHERE contacts.user_id_receiver = '$user_id' AND contacts.status = 1)
基本上,我有一个类需要返回'users',其中'contacts'是用户id的一部分,状态为1。
这背后的想法是Contact / Friend系统表。我基本上有一个Users和Contacts表,我需要根据哪些联系人与我们的用户ID相关来返回用户数据。
答案 0 :(得分:2)
ON
中的()括号位置不正确+ WHERE
子句中有ON
语句,这是不允许的。
这看起来就像你写的那样,但在句法上起作用:
SELECT *
FROM contacts
INNER JOIN users
ON (contacts.user_id_sender = users.id
AND contacts.user_id_sender = '$user_id'
AND contacts.status = 1)
OR
(contacts.user_id_receiver = users.id
AND contacts.user_id_receiver = '$user_id' AND contacts.status = 1)