sql查询-既买了产品A又买了产品B的用户
----------------------------------------------------------
id username product_id
1 张三 363
2 李四 364
3 张三 365
4 王五 363
需求:
找出既买了产品363又买了产品365的用户(即张三),sql怎么写?
数据量比较大,有没有不用表联结的写法?
相关推荐
Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录A
《Microsoft SQL Server 2008技术内幕:T-SQL查询》一书的源代码及附录A内容。
SQL查询包含某个字段的所有表名
SQL查询包含某个字段的所有表名 SQL查询包含某个字段的所有表名 在查询分析器中选中目标数据库,执行以下语句。
SQL的几种连接查询方式(内连接、外连接、全连接、联合查询)
准备表 drop table if exists test_a; CREATE TABLE `test_a` ( `id` varchar(10) NOT NULL, `username` varchar(10) NOT NULL, `password` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; drop table if exists test_a_description; CREATE TABLE `test_a_description` ( `id`
sql必知必会附表A,B
解压后将里面的sql文件直接导入客户端即可。txt格式的里面有注释
SQL查询中in和exists的区别分析
select * from A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); 对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in。 1、select * from A where id in (select id from B); in()只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表


