【发布时间】:2013-12-09 13:39:14
【问题描述】:
我有两个表如下: 用户表:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
另外一个表为 uep,如下:
CREATE TABLE `uep` (
`user_id` int(10) unsigned NOT NULL,
`email_template_id` int(10) unsigned NOT NULL,
`sid` int(10) unsigned NOT NULL,
`send_email` tinyint(1) NOT NULL DEFAULT '1'
);
我想从用户表中获取所有记录,并且只有在user.id = uep.user_id AND uep.send_email = 0
left 加入到uep 表中
但是当我运行查询时
Select id, group_concat(email_template_id) as T from user
LEFT join uep ON (user.id = uep.user_id AND uep.send_email = 0)
group by user_id limit 100
它会忽略用户表中 send_email = 1 的用户。
我只想在 user.id 和 send_email =0 时加入 uep 表,否则不应该加入,只返回用户详细信息。
Sql 小提琴:http://www.sqlfiddle.com/#!2/1f083/2
任何帮助!
【问题讨论】:
-
user是mysql中的保留字吗?它在 TSQL 中,这在 SQL Server 中不起作用,当您使用 ...as T from [user]... 时
-
@DanielDyson:
user不是保留关键字。 -
@SureshKamrushi 请提供一个包含所需结果的表格。我不明白,你想得到什么。
-
您说 uep.send_email = 0 但随后您抱怨忽略了 uep.send_email = 1.Clarify 的用户。
-
小提琴用户表中没有 send_email 字段