MYSQL left join 多个字段

标签 mysql join

我有一个 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/

相关文章:

php - 负 SQL 查询

java - 未加载新创建的行中的默认值

php - 无法使用 Laravel 中的迁移向表添加新列

Mysql查看速度很慢

php - MYSQL用左连接连接3个表

mysql - 查询 2 个表 - JOIN

php - 实时MySQL监控

php - Codeigniter 无法使用 join 方法从数据库表中删除行

mysql - 获取非标准化格式的数据库数据

javascript - Sails 查询在 count() 查询后不返回任何内容