我想用以下条件从两个表中检索匹配项:
从表a和表b中获取列,其中a.some\u name=b.j\u name
Table_A:
**AB some_name G_NAME Status some_time**
------------------------------------------------------------
AAA Job1 xxxxxxxxx Ended OK 2020-06-29 10:37:52
AAA Job2 xxxxxxxxx Ended OK 2020-06-29 10:37:52
BBB AB-Job1 xxxxxxxxx Ended OK 2020-06-29 10:37:52
BBB AB-Job2 xxxxxxxxx Ended OK 2020-06-29 10:37:52
BBB AB-Job3 xxxxxxxxx Ended OK 2020-06-29 10:37:52
Table_B:
**RM j_name desc rand_time**
----------------------------------------------------
111 Job1 Sometext 2020-06-29 06:30:51
111 AB-Job1 Sometext1 2020-06-29 09:31:52
222 AB-Job5 Sometext2 2020-06-29 09:34:11
222 DPF-AB-Job2 Sometext3 2020-06-29 03:39:33
222 DPF-AB-Job3 Sometext4 2020-06-29 11:32:23
SELECT a.some_name, a.some_time ,b.desc
FROM TableA a
LEFT JOIN Table_B b
ON a.some_name = b.j_name
where a.some_name like 'AB-%'
现在我要选择 AB-Job2 and AB-Job3
从表a中选择并与匹配 DPF-AB-Job2 and DPF-AB-Job3
也在同一select语句中。我该如何做到这一点?
2条答案
按热度按时间uelo1irk1#
使用
IN()
匹配多个值,并使用字符串串联来生成其他可能的值。演示
imzjd6km2#
考虑到您想要保留这两个数据集,并且您正在进行左连接,那么
在为示例插入一些记录之后
现在,如果我们运行您的查询:
您将获得表\u b中符合条件的所有记录,以及表\u a中不符合条件的所有记录。由于您还需要与其他条件匹配的记录,因此可以使用union。
在本例中,两个数据集都有,但由于左连接,说明为空。与普通内部联接的结果差异将显示
如果有任何疑问,请随时提出,希望能有所帮助