Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择其他表中不存在的变量_Php_Sql - Fatal编程技术网

Php 选择其他表中不存在的变量

Php 选择其他表中不存在的变量,php,sql,Php,Sql,我正在尝试执行一个php sql查询,从中可以得到用户id不在另一个数据库表中的对象。现在我的问题是: SELECT * FROM table1 WHERE user_id='$show_id' ORDER BY id DESC LIMIT 0, 10 在里面,我检查它是否在我的另一张桌子上。它仅在表中不存在时才会回显。问题是,它不会显示它的极限值为满10 因此,我的想法是创建一个sql查询,以查看它是否存在于另一个数据库表中 在我过去的工作中,我只做了如上所示的简单sql查询,没有做过很多多

我正在尝试执行一个php sql查询,从中可以得到用户id不在另一个数据库表中的对象。现在我的问题是:

SELECT * FROM table1 WHERE user_id='$show_id' ORDER BY id DESC LIMIT 0, 10
在里面,我检查它是否在我的另一张桌子上。它仅在表中不存在时才会回显。问题是,它不会显示它的极限值为满10

因此,我的想法是创建一个sql查询,以查看它是否存在于另一个数据库表中

在我过去的工作中,我只做了如上所示的简单sql查询,没有做过很多多表查询,也没有在查询中放入查询。请帮忙

您可以使用notexists操作符:

SELECT * 
FROM table1 AS t
WHERE user_id='$show_id' 
  AND NOT EXISTS
      ( SELECT *
        FROM OtherTable AS ot
        WHERE ot.user_id = t.user_id
      )
ORDER BY id DESC
LIMIT 0, 10

我不确定,但听起来您正在查找not EXISTS子查询:

SELECT * FROM table1
WHERE NOT EXISTS (select id from othertable where id = user_id) AND user_id='$show_id'
ORDER BY id DESC LIMIT 0, 10

您可以在一个查询中执行此操作:

SELECT *
FROM first_table
WHERE user_id NOT IN (
  SELECT user_id
  FROM second_table
)

这将从第一个\u表中获取所有记录,其中第二个\u表的user\u id列中没有出现user\u id

听起来是一个很好的右连接位置。如果您在问题中提供表架构,人们将能够提供更具体的示例。很抱歉在我的问题中没有这么具体。挖掘和简化我的代码将是困难的!然而,我确实得到了很多答案,这些答案对我帮助很大!感谢大家的投入!对于sql初学者来说,NOT EXISTS比join子句和null检查更直观。LEFT OUTER join是一种优雅的方式!如果你是初学者,最好用更好的方法来学习:不存在和不存在都要简单易懂得多。优雅更接近简单。有时“不存在”执行的比“左连接+为空”执行的更高,有时“左外部连接”执行的更快。这完全取决于您的编码方法。我们,让我这么说吧。。。我的答案使用左外连接。提出问题的人可能会也可能不会选择接受我的答案。和
SELECT  *
  FROM   table1 t1
         LEFT OUTER JOIN table2 t2 on t2.user_id = t1.user_id
 WHERE   t1.user_id = '$show_id'
   AND   t2.user_id IS NULL
ORDER BY id DESC