我有两张桌子,
表A:
+------+----------------+
| TYPE | EMAIL |
+------+----------------+
| 0 | test1@mail.com |
| 1 | test2@mail.com |
| 2 | test3@mail.com |
表B:
+------+----------------+
| ID | EMAIL |
+------+----------------+
| 1 | test1@mail.com |
| 2 | test4@mail.com |
| 3 | test5@mail.com |
我需要使用以下条件检查两个表中的电子邮件地址,
我可以用两个quires做到这一点,但我的问题是,是否有可能用一个查询来做到这一点?
提前致谢。
答案 0 :(得分:2)
这是另一种选择:我希望无论如何它都可以用。
(SELECT NULL AS ID, EMAIL, TYPE FROM A WHERE EMAIL=<email>)
UNION
(SELECT ID, EMAIL, NULL AS TYPE FROM B WHERE EMAIL=<email>)
在您的应用程序中,您将检索0到2个结果。如果得到1个结果,请使用它(请注意,ID或TYPE中将包含NULL值)。如果得到2个结果,请使用TYPE不为NULL的那个。
使用您的数据集和&#34; test1@mail.com"作为查询参数,这将是查询的结果:
ID EMAIL TYPE
NULL test1@mail.com 0
1 test1@mail.com NULL