mysql显示表中添加的所有行

时间:2012-04-01 01:56:50

标签: 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=''";

这将返回所有具有空userid的行。我只想要5因为UID = 1已经设置了他的文件夹Receipts和Books。 任何建议都会帮助我在这几个小时内一直在努力。谢谢

1 个答案:

答案 0 :(得分:5)

将null用户标识行的条件userid IS NULLNOT IN()子查询结合起来,该子查询返回在其他行中具有userid的所有不同文件夹名称。

SELECT *
FROM hpoptions
WHERE 
  userid IS NULL 
  AND foldername NOT IN (
    SELECT DISTINCT foldername FROM hpoptions WHERE userid IS NOT NULL
  )