Php 选择其他表中不存在的变量
我正在尝试执行一个php sql查询,从中可以得到用户id不在另一个数据库表中的对象。现在我的问题是: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查询,没有做过很多多
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