我找不到适合我问题的答案。
我需要知道如何通过SQL中的IN运算符将子查询与自定义值一起使用。这是我想出的查询示例:
SELECT posts.content, users.username,users.name, users.verified
FROM posts, users
WHERE users.uid = posts.post_by
AND posts.post_by IN ((SELECT user_uid FROM user_data.user1_following), 'USER_UID')
ORDER BY posts.id DESC;
此查询旨在仅显示用户下表中来自用户的帖子-并且还应显示原始用户自己的帖子。
post_by代表用户UID(唯一ID)
如果用户仅关注一个人,则此查询有效。如果他们跟随多个人,则会返回错误。它指出以下内容:
more than one row returned by a subquery used as an expression
我知道这是从区块传来的:
((SELECT user_uid FROM user_data.user1_following), 'USER_UID')
如何使用子查询和自定义值('USER_UID')来获得所需的结果?欢迎使用其他方法,只要它们能产生我想要的结果即可。
使用JOIN
!!!!
我发现您的逻辑有点不清楚-我不确定您是否要“跟随”或“跟随”。但想法是:
SELECT p.content, u.username, u.name, u.verified
FROM posts p JOIN
users u
ON u.uid = p.post_by
WHERE p.post_by = $user_uid OR
EXISTS (SELECT 1
FROM user_data ud
WHERE ud.user1_following = $user_uid AND
ud.user_uid = p.post_by
);
ORDER BY p.id DESC;
您可以在UNION
子句中使用IN
,只要user_uid
具有字符类型:
IN (SELECT user_uid FROM user_data.user1_following
UNION
SELECT 'USER_UID')