Sql 来自具有相同id字段的两个表的查询
我有两张桌子 表A-2列(id,A类)和表B-2列(id,B类) 我已经在下面两个表中找出了A类和B类是否相同。如果它改变了,那么我必须将改变的记录显示为id、A类、B类格式 但是,当同一id有2个或更多类时,我无法获得正确的结果。尝试了很多,但无法获得req输出 表A:Sql 来自具有相同id字段的两个表的查询,sql,database,sybase,Sql,Database,Sybase,我有两张桌子 表A-2列(id,A类)和表B-2列(id,B类) 我已经在下面两个表中找出了A类和B类是否相同。如果它改变了,那么我必须将改变的记录显示为id、A类、B类格式 但是,当同一id有2个或更多类时,我无法获得正确的结果。尝试了很多,但无法获得req输出 表A: id class A 1 10 1 20 3 50
id class A
1 10
1 20
3 50
4 60
表B:
id class B
1 20
1 30
3 50
4 60
要求输出:
id Class A Class B
1 10 30
我认为这样可以做到:
SELECT * FROM A, B WHERE A.CLASSA NOT IN (SELECT CLASSA FROM A, B
WHERE CLASSA = CLASSB) AND CLASSB NOT IN (SELECT CLASSA FROM A, B
WHERE CLASSA = CLASSB)
sql fiddle:我认为这样做可以:
Select A.id,A.classA,B.classB from A inner join B
on A.id=B.id
where A.classA!=B.classB
这是可行的,但会使您有两个索引,比如这个主键(CLASSA,ID)和主键(CLASSB,ID),否则这个查询将运行6次完整的表扫描,这是不好的。。