MYSQL在多个字段上保持连接

时间:2012-06-09 16:26:21

标签: mysql join

我有朋友表。是否可以在表的两个字段上执行左连接。换句话说,我不知道这两个字段中的哪一个可能具有我需要的匹配。如果没有,还有其他办法吗?

$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'";

1 个答案:

答案 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'";