我有一个表FOLDERS,每次通过php页面添加一个文件夹,它被插入到FOLDERS中.每个文件夹都有以下字段:id,userid,foldername
我简化了表格,使我的问题更容易掌握.
ID UID FOLDERNAME
1 - 1 - 书籍
2 - 1 - 收据
3 - NULL - 书籍
4 - NULL - 收据
5 - NULL - 主页
6 - 2 - 收据
我想知道如何获得第五行的结果.条件是:第5行没有任何UID(它为空)并且与uid不存在这一事实.我用的时候:
$sql="SELECT * FROM folders WHERE userid=''";
Run Code Online (Sandbox Code Playgroud)
这将返回所有具有空userid的行.我只想要5因为UID = 1已经设置了他的文件夹Receipts和Books.任何建议都会帮助我在这几个小时内一直在努力.谢谢
将userid IS NULLnull用户标识行的条件与NOT IN()子查询组合,子查询返回userid在其他行中具有a的所有不同文件夹名称.
SELECT *
FROM hpoptions
WHERE
userid IS NULL
AND foldername NOT IN (
SELECT DISTINCT foldername FROM hpoptions WHERE userid IS NOT NULL
)
Run Code Online (Sandbox Code Playgroud)