我正在尝试建立一个社交网络,但是无法使用此代码。我正在尝试建立一个时间表,让用户看到他和他的朋友的帖子。但是此SQL语句给我错误“操作数应包含1列”。我该怎么办?我的代码有什么问题吗?还是可以提出其他建议?我同时使用PHP和SQL。
这是我的代码:
SELECT * FROM posts WHERE userId = 15 OR userId LIKE (SELECT user_one,user_two FROM friends WHERE user_one = 15 OR user_two = 15)
Table 'friends'
--------------------------------------------------------
id user_one user_two
1 15 14
2 14 13
答案 0 :(得分:1)
like
不接受子查询-您可能打算使用in
运算符。 in
接受带有一列的子查询。使用union all
运算符可以帮助您在同一列中获得所有结果:
SELECT *
FROM posts
WHERE userId = 15 OR userId IN (SELECT user_one FROM friends WHERE user_two = 15
UNION ALL
SELECT user_two FROM friends WHERE user_one = 15)