我有两个表,t1和t2,具有相同的列(id,desc)和数据。但其中一个列desc可能对同一个主键id。
有不同的数据我想从这两个表中选择所有这些行,以便t1.desc!= t2.desc
select a.id, b.desc
FROM (SELECT * FROM t1 AS a
UNION ALL
SELECT * FROM t2 AS b)
WHERE a.desc != b.desc
例如,如果t1有(1,'aaa')和(2,'bbb')并且t2有(1,'aaa')和(2,'bbb1')那么新表应该有(2 ,'bbb')和(2,'bbb1')
但是,这似乎不起作用。请让我知道我哪里出错了,正确的做法是什么。
答案 0 :(得分:4)
event.charCode
不会比较数据。您需要event.which
这里
Union
答案 1 :(得分:2)
a
在查询的第一部分生成的行之后转储查询的第二部分的所有行。您无法将b
的字段与t1
的字段进行比较,因为它们属于不同的行。
您可能要做的是查找id
的记录,t2
匹配JOIN
的记录,但描述不同。这可以通过SELECT a.id, b.desc
FROM t1 AS a
JOIN t2 AS b ON a.id = b.id
WHERE a.desc != b.desc
:
t1
这样,t2
的ID与UNION ALL
记录匹配的记录将最终出现在同一行的联合数据中,这样您就可以对不等式的描述进行比较。
我希望两个行都被选中,描述不相等
您可以在通过join获得的两组行之间使用SELECT a.id, b.desc -- t1 is a, t2 is b
FROM t1 AS a
JOIN t2 AS b ON a.id = b.id
WHERE a.desc != b.desc
UNION ALL
SELECT a.id, b.desc -- t1 is b, t2 is a
FROM t2 AS a
JOIN t1 AS b ON a.id = b.id
WHERE a.desc != b.desc
,表格可以切换位置,如下所示:
MKPointAnnotation()
答案 2 :(得分:1)
UNION运算符用于组合两个或多个SELECT语句的结果集。
请注意,UNION中的每个SELECT语句必须具有相同的列数。列还必须具有类似的数据类型。
因此,如果它具有相同数量的列和相同的数据类型,则使用Union,否则仅使用join。可以使用。
{{1}}