我创建了一个用户,帖子和朋友的数据库,并希望从account_name为$ u =“登录用户”的帖子中提取所有帖子,以及account_name所在的位置 “在登录用户的朋友列表中”
我如何添加查询来拉动......请检查以下查询:
$sql = "SELECT p.*, u.avater FROM posts AS p
LEFT JOIN users AS u ON u.username = p.author
WHERE (p.account_name='$u') OR (p.account_name = '(if exist in logged_user friends list')
ORDER BY p.postdate DESC LIMIT 20";
答案 0 :(得分:0)
实现此目的的一种方法是使用IN
,然后在WHERE
语句中选择子查询,请参阅下文。
我不确定logged_user
中的表格结构,只需在下面的示例中选择一列(id
),然后使用$u
用户WHERE
1}}陈述。
注意,在查询中直接包含'$ u'是不好的做法,您应该使用预准备语句。
SELECT p.*, u.avater
FROM posts AS p
LEFT JOIN users AS u ON u.username = p.author
WHERE p.account_name = '$u'
OR p.account_name IN (SELECT user2 FROM friends WHERE user1 = '$u')
ORDER BY p.postdate DESC LIMIT 20