SQL Query使用相关数据返回主行下的数据

时间:2014-12-12 22:03:55

标签: sql-server

我确定这可能在某处,但我什么都不能,甚至不知道提问的正确方法。

以下是一个示例数据集:

Table1
=======
IssueID     IssueTitle
1           Bug #1
2           Feature #1
3           Feature #2
4           Bug #2


Table2
======
IssueID     ActivityEntry
3           notes
3           attachment
2           notes
2           email
2           email

我想要的是使用此查询:

SELECT Table1.IssueID, Table1.IssueTitle 
FROM Table1 
WHERE IssueTitle like '%Feature%'

但是也要在该结果集的每一行下面包含Table2中的数据,以便显示如下:

IssueID     IssueTitle
----------------------
2       Feature #1
ActivityEntry
----------------------
notes
email
email

IssueID     IssueTitle
----------------------
3       Feature #2
ActivityEntry
----------------------
notes
attachment

1 个答案:

答案 0 :(得分:1)

您的查询是:

SELECT Table1.IssueID,
    Table1.IssueTitle,
    Table2.ActivityEntry
FROM Table1
INNER JOIN Table2
    ON Table2.IssueID = Table1.IssueID
WHERE Table1.IssueTitle LIKE '%Feature%';

至于您的显示器,需要在您的应用程序或报表设计器中处理。 SQL执行列,所有列必须是相同的类型。您可以使用两个查询在SQL中进行近似检验:

SELECT Table1.IssueID,
    Table1.IssueTitle
FROM Table1
WHERE Table1.IssueTitle LIKE '%Feature%';

SELECT Table2.ActivityEntry
FROM Table2
WHERE Table2.IssueID IN (
    SELECT Table1.IssueID
    FROM Table1
    WHERE Table1.IssueTitle LIKE '%Feature%'
    );

如果Table1的{​​{1}}字段包含Bug和功能条目会更加清晰,因为IssueType是一个非常昂贵的运营商,但这有点超出了范围问题。