Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 来自具有相同id字段的两个表的查询_Sql_Database_Sybase - Fatal编程技术网

Sql 来自具有相同id字段的两个表的查询

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

我有两张桌子

表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             
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次完整的表扫描,这是不好的。。