mysql显示表中添加的所有行

cpp*_*pit 1 php mysql sql

我有一个表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.任何建议都会帮助我在这几个小时内一直在努力.谢谢

Mic*_*ski 5

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)