我有一个用户表:
| username | user_id |
和朋友表格:
| user_id | friend_id |
我发布user_id
以检索某个用户的朋友。
我正在使用$query = "SELECT friend_id FROM friends WHERE user_id = ?"
我也想要这些朋友的用户名,所以我想加入这些表。
$query = 'SELECT f.friend_id,u.username FROM friends f WHERE f.user_id = ? JOIN users u ON u.user_id = f.friend_id'
但在这种情况下结果为零。我的逻辑错了吗?
答案 0 :(得分:1)
更新您的MYSQL查询:
$query = 'SELECT f.friend_id,u.username FROM friends f WHERE f.user_id = ? JOIN users u ON u.user_id = f.friend_id'
使用此查询:
$query = 'SELECT f.friend_id, u.username FROM friends f JOIN users u ON u.user_id = f.friend_id WHERE f.user_id = ?'
无论我们在表格中使用MYSQL JOIN ... ON ,都会将此项置于 WHERE 之类的条件子句之前。
答案 1 :(得分:0)
你的查询应该是这个
SELECT f.friend_id,u.username FROM friends f JOIN users u ON u.user_id = f.user_id WHERE f.user_id = ?
答案 2 :(得分:0)
$query = 'SELECT f.friend_id, u.username FROM friends f JOIN users u ON u.user_id = f.friend_id where f.user_id = ?'
答案 3 :(得分:0)
$query = "select f.`friend_id`, u.`username`
from `users` u
join `friends` f on u.user_id = f.user_id
join `users` u2 on u2.user_id = f.user_id
where u2.`user_id` = ?"
答案 4 :(得分:-1)
这样的事情应该有效
$query = "select f.`friend_id`, u.`username` from `friends` f
left outer join `users` u on u.`user_id`=f.`friend_id`
where f.`user_id` = ?";
没有发现初始错误...
答案 5 :(得分:-1)
应该是
$query = 'SELECT f.friend_id,u.username FROM friends f WHERE f.user_id = ? ANd u.user_id = f.user_id'