(select * from exp_dict where exp_indicator = '2')这个只能返回一个字段

解决方案 »

  1.   

    delete from price_list where item_code in (select (某一个字段) from exp_dict where exp_indicator = '2')
      

  2.   

    最好不要使用in 语句,太慢了,使用exists
      

  3.   


    delete from price_list where item_code exists (select 字段 from exp_dict where exp_indicator = '2')
      

  4.   

    当你的price_list表的数据量大,而exp_dice的数据量少时,建议你用in,那样效率更高,
    如果price_list表的数据量小,而exp_dict的数据量大时,建议你用exists。
      

  5.   


    exists不是这么写吧?
    应该是
    delete from price_list where exists (select 1 from exp_dict where exp_dict.exp_indicator = '2' and exp_dict.item_code = price_list.item_code)
      

  6.   


    呵呵...谢谢你更正,我copy楼上的没看仔细
      

  7.   

    select * from exp_dict where exp_indicator = '2' 返回的是exp_dict表中 所有字段,
    而item_code 和返回的结果不对应,所以不正确,执行就不通过了。
      

  8.   

    delete from price_list where item_code in (select ed.item.code(item_code 与exp_dict 表关联的字段) from exp_dict ed where ed.exp_indicator = '2')
      

  9.   

    delete from price_list where item_code in (select item_code  from exp_dict where exp_indicator = '2')
      

  10.   

    一般也是这么写delete from price_list where item_code in (select item_code  from exp_dict where exp_indicator = '2')
      

  11.   

    delete from price_list where item_code in (select * from exp_dict where exp_indicator = '2')
    要改成 delete from price_list where item_code in (select colname from exp_dict where exp_indicator = '2')
    不然你的exp_dict 有多列时,会报错。
      

  12.   

    1,in效率较低,可用exists代替,in无法使用索引
    2,*不对,只能是某一个和查询谓词对于的字段
      

  13.   

    delete from price_list where item_code in (select * from exp_dict where exp_indicator = '2')
    其中select * from exp_dict where exp_indicator = '2' 返回的是一个结果集,不是字段,应该把*改成item_code字段名。
      

  14.   

    select * from exp_dict where exp_indicator = '2'   这个子查询返回的是exp_dict表中 exp_indicator值为2的所有字段,时一个字段集合。
    而你想要的是item_code字段。 
    很明显两者结果对应不上。
    可以改成:delete from price_list where item_code in (select item_code  from exp_dict where exp_indicator = '2')
    不过为了执行效率,建议使用exists