select a.* from 表结构如下 a inner join 表结构如下 b on a.goods_id=b.goods_id where a.category_id=3 and b.category_id=4
如果条件比较多的话,则可以如下。select a.* from 表结构如下 a where category_id=3 and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=4) and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=5) ... and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=X)
多谢回复。select 1 from ... 这个1是什么意思?
select goods_id,count(*) from ( select goods_id,category_id from mytable group by goods_id,category_id ) r group by goods_id having count(*)>1;
from 表结构如下 a inner join 表结构如下 b on a.goods_id=b.goods_id
where a.category_id=3 and b.category_id=4
from 表结构如下 a
where category_id=3
and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=4)
and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=5)
...
and exists (select 1 from 表结构如下 where goods_id=a.goods_id and category_id=X)
这个1是什么意思?
from (
select goods_id,category_id
from mytable
group by goods_id,category_id
) r
group by goods_id
having count(*)>1;