【发布时间】:2012-02-06 16:00:25
【问题描述】:
SELECT `views`.* FROM `views`
INNER JOIN memberships ON memberships.second_id = views.user_id
WHERE (memberships.user_id = 1 OR views.user_id = 1)
我有这个 MySQL 查询 - 我的问题是,WHERE 子句的第二部分不起作用,只获取行,等于 memberships.user_id = 1,但已经不是 OR views.user_id = 1。
为什么不呢?怎么了?
【问题讨论】:
-
视图表中是否有明确的记录(连接时)与查询匹配?
-
也许是 mysql 运算符 AND 而不是 OR ...无论如何你的问题有点混乱,特别是“仅获取行”..
-
解释不清楚,请修改。也许您应该在表中生成一个模式和示例数据的最小示例,以及您得到的与您期望的。您可能只需要
views中的几 (1-4) 行和memberships中的几 (1-4) 行来显示您的问题。 -
伙计们,我尝试使用
LEFT而不是INNERJOIN 并且它有效... -
@user984621 那么您在表
views中没有记录,其中memberships.second_id = views.user_id和views.user_id = 1
标签: mysql database inner-join where-clause where