供应商表 buss
    型号
    name 供应商名称
    type 型号
        台式机表 pc
      type 型号
      price  价格
    笔记本表 Laptop
     type 型号
     price  价格1. 求 name = A 的供应商 所贩卖的所有产品(pc 和笔记本)
2. 求 买pc 并且 不卖 笔记本的所有供应商名称
     
   

解决方案 »

  1.   

    select PC.*
    from PC
    join buss on pc.type=buss.type
    where buss.name='a'
      

  2.   

    还有笔记本呢? 别用union啊
      

  3.   

    select select PC.*
    from PC
    inner join buss on pc.type=buss.type
    where buss.name='a'
    select * from PC where type in (select type from buss where name='a')
    select name from buss where type in(select type from pc) 
    and type not in (select type from  Laptop)
      

  4.   

    select * from 
    buss
    join(select type from pc
    except 
    select type from laptop
    ) t on buss.type =t.type
      

  5.   

    SELECT * FROM BUSS A ,
    (
    SELECT * FROM PC
    UNION ALL
    SELECT * FROM Laptop) B WHERE A.TYPE=B.TYPE AND A.name = 'a'
      

  6.   

    SELECT * FRPM BUSS B
     WHERE EXISTS(SELECT 1 FROM PC WHERE TYPE=B.TYPE) 
    AND NOT EXISTS(SELECT 1 FROM LAPTOP WHERE TYPE=B.TYPE)
      

  7.   

    这个except不太熟悉,不过pc 和笔记本可不是包含的关系,应该不能这么用吧....