0

私は2つのテーブルを持っています。

Table1
ID    Text

Table2
ID    ParentID    Text

2 つの異なる列を使用して同じテーブルに 2 回参加しようとしています。Table1.ID = Table2.ID のすべての行と、Table1.ID = Table2.ParentID のすべての行が必要です。以下を試しましたが、行が返されません。以下のスクリプトを 2 つの異なる select ステートメントでそれぞれ 1 つの結合のみで実行すると、必要な結果が得られますが、同じ select ステートメントでは得られません。私が間違っていることについてのアイデアはありますか?

SELECT * 
FROM Table 1
JOIN Table2 2 
    on 2.ID = Table1.ID
JOIN Table2 22 
    on 22.ParentID = Table1.ID
4

3 に答える 3

1

テーブル 1 が親 ID と ID の両方であるレコードのみを取得しています...多分あなたが望む:

SELECT 
* FROM Table 1
JOIN Table2 2 on 2.ID = Table1.ID
UNION
SELECT 
* FROM Table 1
JOIN Table2 22 on 22.ParentID = Table1.ID

または潜在的にUNION ALL?

于 2013-09-13T15:10:46.200 に答える
1

このクエリを試すことができます:

SELECT 
    * 
FROM 
    TABLE1, 
    TABLE2 
WHERE 
    TABLE1.ID = TABLE2.ID 
    OR 
    TABLE1.ID = TABLE2.ParentID
于 2013-09-13T15:14:38.347 に答える
0

あなたのエイリアシングは少しずれています。

これを試してください:

SELECT * 
FROM Table 1
JOIN Table2 2 
    on 2.ID = 1.ID
JOIN Table2 22
    on 22.ParentID = 1.ID

SELECT *そこにエイリアスがないと、まだエラーが発生する可能性があります...実行することをお勧めSELECT 1.*SELECT 1.myColumn, 1.myColumn2ます...

于 2013-09-13T15:12:25.303 に答える