mysql - SQL语句返回结果为零

标签 mysql database

我正在尝试选择所在的行

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/

相关文章:

php - 正确地将不同的工作分配给不同的用户

database - 设计我们的数据库,表结构,关系

database - 返回在PostgreSQL中使用Rocket和Diesel创建的单个记录(Rust)

database - 使用对象关系数据库(如 Oracle/PostrgreSQL)与常规关系数据库的好处?

mysql - 如何使用 laravel 或 mysql 创建嵌套 json?

mysql - 如何使用子查询作为插入值?

mysql - 在插入之前清除 LAST_INSERT_ID() 以判断返回的内容是否来 self 的插入

mysql - 具有不同字段的两个选择查询的并集

mysql - 从 LEFT JOIN 设置 NULL 列的默认值并使用 WHERE 进行过滤

mysql - 在数据库中存储 100K 个不同的表