可以说我有2个结果集如下
R1 R2
| 1 | | 5 |
| 2 | | 6 |
| 3 | | 7 |
| 4 | | 8 |
我需要将这些结果组合成一个集合,所以我会有这样的东西:
R3
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
目前,我正在使用 aa UNION 执行此操作,如下所示:
SELECT c_1 AS result FROM table WHERE c_1=3 OR c_2=3
UNION
SELECT c_2 AS result FROM table WHERE c_1=3 OR c_2=3
基本上,我最终在表上执行了两次相同的操作,每次只检索不同的行。有没有更有效的方法可以做到这一点?我需要将结果放在单个列中,因为这是 IN 的限制。从长远来看,我需要做的是
SELECT name FROM person WHERE person_id IN
(SELECT c_1 AS result FROM table WHERE c_1=3 OR c_2=3
UNION
SELECT c_2 AS result FROM table WHERE c_1=3 OR c_2=3)
有没有更好的方法来找到所有这些?欢迎任何和所有帮助。