次のように2つの結果セットがあるとしましょう
R1 R2
| 1 | | 5 |
| 2 | | 6 |
| 3 | | 7 |
| 4 | | 8 |
これらの結果を 1 つの SET に結合する必要があるため、次のようになります。
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
基本的に、毎回異なる行を取得するだけで、テーブルに対して同じ操作を 2 回実行することになります。これを行うためのより効率的な方法はありますか?これは 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)
このすべてを見つけるためのより良い方法はありますか? どんな助けでも大歓迎です。