要查询a表里某一列(c列)不包含b表里某一列(d列)的值,因为c列里的值为d列中值添加后缀生成的,所以要用模糊查询。not like不支持多于一个的值,是否有办法能一句sql语句来解决这个?
跪求各位高手赐教。

解决方案 »

  1.   

    sorry,昨天没看清你的需求。
    请贴出示例数据和你想要的结果。
      

  2.   

    SELECT * FROM a WHERE c NOT IN (SELECT d FROM b)
      

  3.   

    多谢ohmygirl再次理我~
    大概是
    a表:
    id     value 
    1      [email protected]
    2      [email protected]
    3      [email protected]
    4      [email protected]表:
    id     value
    1      naigo
    2      naigoc要查询出a表value中不是以b表value作为前缀的值。
      

  4.   

    如果数据不多,最好全拿出来,用php过滤,这样效率会比你在sql中存在大量函数的要高
      

  5.   

    a表与b表是n:1的关系,b表里估计会有上万条数据。
      

  6.   


    SELECT * FROM a WHERE SUBSTR( c, 1, INSTR( c,  '@' ) -1 ) NOT IN (SELECT d FROM b)
      

  7.   

    amani11  ++
    很好很强大。