s_id 主键 
g_id 产品id
r_id 1000 代表口味
r_id 1004 代表产地
s_cname 中文
s_ename 英文
s_kname 繁体中文
s_level 是否删除 2为正常
s_date 添加日期

解决方案 »

  1.   

    同意二楼所讲
    还有为什么你最后要的结果 应该是  1002,1003    are you sure?
      

  2.   

    s_id 主键 
    g_id 产品id
    r_id 1000 代表口味
    r_id 1004 代表产地
    s_cname 中文
    s_ename 英文
    s_kname 繁体中文
    s_level 是否删除 2为正常
    s_date 添加日期 
      

  3.   

    同意二楼所讲
    还有为什么你最后要的结果 应该是  1002,1003    are you sure?因为满足第一个语句的条件的有  1002 1003 1004
    满足第二个语句的条件的有  1003 1002
    同事满足两个语句条件的  按道理来说应该只有 1003 1002
      

  4.   

    select a.g_id 
      from (select g_id from spec where s_cname='深度' and r_id='1000') a
      join (select g_id from spec where s_cname='巴西' and r_id='1004') b
        on a.g_id = b.g_id
      

  5.   

    试一下这句:
    select g_id from spec where g_id in 
    (select g_id from spec where s_cname='深度' and r_id='1000') 
    and g_id in 
    (select g_id from spec where s_cname='巴西' and r_id='1004')你的这句:
    select g_id from spec where (s_cname='深度' and r_id='1000') and (s_cname='巴西' and r_id='1004')
    改一下Where的顺序,就如下:
    select g_id from spec where (s_cname='深度' and s_cname='巴西') and (r_id='1000' and r_id='1004')
    返回的结果肯定是空的。
      

  6.   

    你参考一下
    SELECT A.g_id FROM spec A
    WHERE EXISTS(SELECT 1 FROM spec B WHERE A.g_id=B.g_id B.s_cname='深度' and B.r_id='1000')
    AND EXISTS(SELECT 1 FROM spec C WHERE A.g_id=C.g_id C.s_cname='巴西' and C.r_id='1004')
    GROUP BY A.g_id
      

  7.   

    select g_id from spec where (s_cname='深度' and r_id='1000') and (s_cname='巴西' and r_id='1004')
    这个语句就查询不出来啊,表内s_cname='深度'同时还要='巴西' ,数据表里就没有这种的数据,
    select a.g_id   from (select g_id from spec where s_cname='深度' and r_id='1000') a inner
      join (select g_id from spec where s_cname='巴西' and r_id='1004') b
        on a.g_id = b.g_id
      

  8.   

    select g_id from spec where (s_cname='深度' and r_id='1000') or (s_cname='巴西' and r_id='1004')
      

  9.   

    (s_cname='深度' and r_id='1000') and (s_cname='巴西' and r_id='1004')
    肯定为空啊。不存在记录同时满足s_cname='深度' and  s_cname='巴西'
      

  10.   


    select g_id from spec t where t.s_cname='深度' and t.r_id='1000' and
    exists(select 1 from spec where g_id=t.g_id and s_cname='巴西' and r_id='1004')