17,086
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE `product_config` (
`product_id` bigint(20) NOT NULL COMMENT '产品ID',
`config_id` bigint(20) NOT NULL COMMENT '产品配置属性ID'
)
INSERT INTO `product_config`(`product_id`, `config_id`) VALUES (4, 7);
INSERT INTO `product_config`(`product_id`, `config_id`) VALUES (6, 2);
INSERT INTO `product_config`(`product_id`, `config_id`) VALUES (6, 7);
INSERT INTO `product_config`(`product_id`, `config_id`) VALUES (6, 14);
想查询出config_id等于2,7,14的product_id,只想要看到product_id=6的记录
CREATE TABLE product_config (
product_id number,
config_id number,
create_date date,
update_date date
) ;
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (6, 2,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (6, 7,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (6, 14,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (4, 7,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (1, 2,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (1, 7,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (1, 14,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (2, 2,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (3, 2,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (5, 2,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (5, 7,sysdate,sysdate);
INSERT INTO product_config(product_id, config_id,create_date,update_date) VALUES (5, 14,sysdate,sysdate);
select t1.product_id from product_config t1
where 1 = 1
and t1.config_id in (2, 7, 14)
group by t1.product_id
having count(distinct t1.config_id) = 3
;
drop table product_config;
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (6, 2,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (6, 7,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (6, 14,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (4, 7,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (1, 2,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (1, 7,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (1, 14,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (2, 2,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (3, 2,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (5, 2,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (5, 7,now(),now());
INSERT INTO `product_config`(`product_id`, `config_id`,create_date,`update_date`) VALUES (5, 14,now(),now());
这些数据,想得到查询结果就是
select * from product_config where prodoct_id = 6;
select * from product_config where config_id in(2, 7, 14);
select * from product_config where prodoct_id = 6 and config_id in(2, 7, 14);