我正在尝试选择所在的行
1)list.ispublic = 1
2)userlist.userid='aaa'
和 userlist.listid=list.listid
我需要1)+2)
已有一行,但此语句无法获取该行,有什么问题吗?
列表表:
ListID ListName Creator IsRemindSub IsRemindUnSub IsPublic CreateDate LastModified Reminder
1 test2 aaa 0 0 1 2012-03-09 NULL NULL
user_list 表(无行):
UserID ListID UserRights
我的测试版本
SELECT *
FROM list l
INNER JOIN user_list ul ON ul.ListID = l.ListID
WHERE l.IsPublic = 1 AND ul.UserID = '09185346d'
这是当 user_list 中有两个列表有 aaa 时的结果,并且一个列表在列表中是公共(public)的,那么如果我在 php 中获取它,这是否会导致列表中的一个公共(public)列表的双重检索?
ListID ListName Creator IsRemindSub IsRemindUnSub IsPublic CreateDate LastModified Reminder UserID ListID UserRights
1 test2 aaa 0 0 1 2012-03-09 NULL aaa 1 read
2 t2 aaa 0 0 1 2012-03-09 NULL aaa 2 read
最佳答案
如果您的 user_list 表不包含任何行,则该查询将不会返回任何结果。
您想要左连接。
SELECT list.col_1, list.col_2 -- etc...
FROM list
LEFT JOIN user_list ON user_list.ListID = List.ListID
WHERE list.IsPublic = 1
OR user_list.UserID = 'aaa'
关于mysql - SQL语句返回结果为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622712/