0

私は以下のようなテーブルを持っています

ID | CID

1  | 3
2  | 0
3  | 4
4  | 0
5  | 0
6  | 3

以下は、私が使用する SELF JOIN である SQL クエリです。

SELECT t1.ID
FROM `tbl_a` AS t1 JOIN `tbl_a` AS t2 
ON t1.ID = t2.CID

これにより、以下のような O/P が得られます。

ID | CID

3  | 4
4  | 0

しかし、私がO/Pとして欲しいのは1,3,4,6.

O/P のロジックは、使用されている行 ID または CID です。さらに説明すると、ID が 1 の場合 CID 3、ID が 3 の場合 CID は 4、ID が 6 の場合 CID は 31,3,4,6です。

Final Correct O/P Required は以下のとおりです。

ID  

1   
3   
4   
6   

どうすればそれを成し遂げることができますか?

4

3 に答える 3

1

これはあなたが望むものかもしれないと思います:

select ID
from tbl_a
where id in (3, 4) or cid in (3, 4);
于 2013-07-29T15:25:03.497 に答える
1

これを試して

SELECT t2.ID
FROM `tbl_a` AS t1 JOIN `tbl_a` AS t2 
ON t1.ID = t2.CID
OR t2.ID = t1.CID
GROUP BY t2.ID
于 2013-07-29T15:15:34.750 に答える
1

何をしようとしているのかわからない。ゼロ以外の CID を持つ行、または CID 列によって参照される行の ID が必要だと言っていると思います。(?) これを試して:

SELECT ID FROM tbl_a AS t1 WHERE CID <> 0 OR EXISTS(SELECT * FROM tbl_a AS t2 WHERE t2.CID = t1.ID) ORDER BY ID
于 2013-07-29T15:12:59.287 に答える