我有一个 friend 表。是否可以对表的两个字段进行左连接。换句话说,我不知道这两个字段中的哪一个可能具有我需要的匹配项。如果没有,还有其他方法吗?
$sql = "SELECT * FROM `friends` f
LEFT JOIN `users` u
ON f.askee OR f.asker = u.ID
where (asker='$userid' OR askee='$userid') AND status='3'";
最佳答案
左连接是正确的:OR 运算符将执行您期望的操作。但是你对 $userid
的过滤器应该应用于父表(friends
),而不是左连接表(否则它会取消外部连接):
$sql = "SELECT * FROM `friends` f
LEFT JOIN `users` u ON f.`askee` = u.`ID` OR f.`asker` = u.`ID`
WHERE u.`status` = '3' AND u.ID = '$userid'";
关于MYSQL left join 多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962606/