0

我有两张桌子。

Table1
ID    Text

Table2
ID    ParentID    Text

我正在尝试使用 2 个不同的列两次加入同一个表。我想要 Table1.ID = Table2.ID 的所有行以及 Table1.ID = Table2.ParentID 的所有行。我尝试了以下方法,但它没有返回任何行。当我在两个不同的 select 语句中运行下面的脚本时,每个语句都只有一个连接,我得到了我想要的结果,但不是在同一个 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 回答