select 你要查的字段 from 表1,表2 where 表1.id=表2.id and 别的条件但是表要有关连字段,id是自加的两个表里都有

解决方案 »

  1.   

    to:zhaoqy0416(云)
    你哪个是查多个表里字段值相等的条件,我要得是类似“not in (……)”这样的条件
      

  2.   

    这样行吗?我没有验证,你自己看看
    select A.Aname from A,B where A.Aname<>B.Aname
      

  3.   

    试试:
    select Aname from A as a,B as b where a.Aname not in (b.Bname)
      

  4.   

    select A.Aname from A,B where A.Aname<>B.Aname group by A.Aname 
    哪个方法试过了~~全部数据都查出来了~~~~
      

  5.   

    to:luojx(大鱼儿)select Aname from A as a,B as b where a.Aname not in (b.Bname)这个也不行~~全查出来~~~~
      

  6.   

    select A.Aname from A LEFT JOIN B ON Aname!=Bname;
      

  7.   

    同意 : 楼上的方法。在这里 我有一种办法可以很快学会各种查询方法。打开 Microft SQL Server --->右击一个表名--〉打开表--〉查询 。在这里可以添加表,然后再从表之间找到联系(如:两个字段相等,就用鼠标左击(按下不放)其中的一个字段,拖拉到另一个表的相同字段位子即可,即表明这两个表是根据这个字段想等来关联的),她的代码就自动生成了(要想根据两相等的字段查不想等数据,只要有原来的等号改为不等即可),可以试试!!!
      

  8.   

    select d ,e from a left jion b on (a.a<>b.a and a.b<>b.b and a.c<>b.c)
      

  9.   

    也可以换MySQL4或5,都支持子查询
      

  10.   

    to:Debian(乌鱼子)
    你的方法不行,所有数据都被查出来了~~~
    to:fwq001(安徽江苏) 
    sql server的语法跟mysql的语法不同,所以用哪个工具是不行的~~
    to: bigbuiding() 
    请你仔细看看问题~我的AB2个表各只有一个字段,abcd是该字段下的数据~而不是字段名~~~
      

  11.   

    to:Debian(乌鱼子)
    好象只有最新的mysql支持嵌套吧?况且哪个只是测试版~~~我的机器就是mysql4。0。4,嵌套语法显示错误~~~郁闷中…………
      

  12.   

    mysql明确表示在4.1以上才支持子查询,不过现在4.1还在alpha版中
    你可以用left join代替
      

  13.   

    to:bbfish(bbfish)用left join 的方法的语句具体怎么写啊?上面的那些写法都不可以啊~~~~
      

  14.   

    不知道你的mysql是什么版本,如果不是最新的版本的话那是不行的
    mysql还不支持多表查询
      

  15.   

    我的是4。0。4,是不支持嵌套,但是我要达到上面说的功能该怎么写mysql语句啊?
      

  16.   

    我用过4.1.1和5.0,都是alpha版,都支持
      

  17.   

    >
    >select A.Aname from A,B where A.Aname<>B.Aname group by A.Aname 
    >哪个方法试过了~~全部数据都查出来了~~~~
    >
    这样它都全部出来!!!
    建议换个重新安装数据库,或者升级它。
      

  18.   

    to:telent(天才) 
    当然有主键,实际表里是多个字段的,为了简单说明我举个例子而已,就算拿a表里的Aname做主键,你知道怎么写能得到结果吗?另外,跟有没有主键有关系吗?!??!!
      

  19.   

    A表一个字段Aname,数据:a、b、c、d、e
    B表一个字段Bname,数据:a、b、c
    现在我想查出存在于A表、但不存在于B表里的数据:d、e
    SELECT *
     FROM A 
     LEFT JOIN B ON A.Aname =B.Bname
     WHERE B.Bname IS NULL
      

  20.   

    如果在一个LEFT JOIN中没有右表的匹配记录,一个所有列设置为NULL的行被用于右表。你可以使用这个事实指出表中在另一个表中没有对应记录的记录: 
    mysql> select table1.* from table1
               LEFT JOIN table2 ON table1.id=table2.id
               where table2.id is NULL;这个例子找出在table1中所有的行,其id值在table2中不存在(即,所有table1中的在table2中没有对应行的行)。当然这假定table2.id被声明为NOT NULL。====
    摘自mySql中文参考手册
      

  21.   

    多谢shuixin13(犬犬(心帆)) 和 ntem(失措)
    祝所有回帖者春节快乐~~~:)发利是~~~~~~~~:)