用户表 user
id name
1 张三
2 李四
3 王五
标签表 tags
id uid title
1 1 聪明
2 1 勤奋
3 2 聪明
4 2 勤奋
5 3 聪明
问题是如何查询同时包含某几个标签的人 比如同时包含 聪明
,勤奋
的人
SELECT `user`.* FROM `user`
JOIN `tags` ON `user`.`id`=`tags`.`uid`
WHERE `tags`.`title` = '聪明'
AND `tags`.`title` = '勤奋'
这个语句查不出来结果,应该怎么写?
-- 表的结构
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
INSERT INTO `user` (`id`, `name`) VALUES
(1, '张三'),
(2, '李四'),
(3, '王五');
CREATE TABLE `tags` (
`id` int(9) NOT NULL,
`uid` int(9) NOT NULL,
`title` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
INSERT INTO `tags` (`id`, `uid`, `title`) VALUES
(1, 1, '勤奋'),
(2, 1, '聪明'),
(3, 2, '肥宅'),
(4, 2, '勤奋'),
(5, 2, '聪明'),
(6, 3, '聪明');
你那个查询的条件明显就不对