0

我正在尝试从 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
4

4 回答 4

0

您必须仅选择user_idfrom another_table_name。如果没有看到您的表格结构,我将无法进一步帮助您。

于 2013-07-24T18:26:24.293 回答
0

你的逻辑是正确的。我们不知道查询中的参数化值。我的猜测是那些不等于您期望的值。

于 2013-07-24T18:27:05.437 回答
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
于 2013-07-24T18:28:28.047 回答
0

您只需user_id要从子查询中选择 s。也许是这样的:

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
于 2013-07-24T18:30:32.630 回答