我有朋友表。是否可以在表的两个字段上执行左连接。换句话说,我不知道这两个字段中的哪一个可能具有我需要的匹配。如果没有,还有其他办法吗?
$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'";
答案 0 :(得分:5)
左连接是正确的: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'";