我正在尝试从表中选择数据行,其中user_id不等于登录用户的uder_id以及user_id不在子查询中的位置。出于某种原因,我无法让它发挥作用。我能做错什么?
我的代码:
SELECT *
FROM table_name
WHERE user_id != '".$_SESSION['id']."'
AND user_id NOT IN(
SELECT * FROM another_table_name where user1= '".$user_id."' AND status= 1)
ORDER BY RAND()
LIMIT 5
答案 0 :(得分:0)
您必须从user_id
中仅选择another_table_name
。
没有看到你的桌子结构,我无法进一步帮助你。
答案 1 :(得分:0)
你的逻辑是正确的。我们不知道的是查询中的参数化值。我的猜测是那些不等于你期望的值。
答案 2 :(得分:0)
在子查询中,您只想选择user_ids,使用“select *”
进行子查询SELECT * FROM table_name WHERE user_id != '".{$_SESSION['id']}."' AND user_id NOT IN(SELECT
user_id FROM another_table_name where user1= '".$user_id."' AND status= 1) ORDER BY RAND() LIMIT 5
答案 3 :(得分:0)
您只需要从子查询中选择user_id
。也许是这样的:
SELECT *
FROM table_name
WHERE user_id != '".{$_SESSION['id']}."'
AND user_id NOT IN(SELECT user_id
FROM another_table_name
WHERE user1= '".$user_id."'
AND status= 1)
ORDER BY RAND()
LIMIT 5