2015-06-14 81 views
-1

我有三个表:使用子查询选择多个值

  1. 文章

  2. articleTags

  3. article_articleTags_Rel

articleTags_Rel表中有2列

  1. ArticleID_FK

  2. TagID_FK

正如你可以看到article_articleTags_Rel是将T之间的关系他文章articleTags

所有我想要的是从文章表,并使用子查询所有相关的标签(多值)选择一行。

我该如何做到这一点?

+1

请提供一些示例数据以及您想要获取的数据结果。 – Mureinik

+0

@Mureinik我不知道这是如何工作,我不知道如何将返回的数据(可能是标签将添加为列?),这是我第一次面对这种情况,任何建议,欢迎。 –

+0

您正在查找连接查询,而不是子查询。 – Tim3880

回答

2

你可以尝试这样的事情:

select a.name, b.TagName 
from 
    article_articleTags_Rel c 
    inner join articles a on a.ID = c.ArticleID_FK 
    left outer join articleTags b on b.ID = c.TagID_FK 

结果:

name TagName 
--------------- 
art A tag 1 
art A tag 2 
art A tag 3 
art B tag 1 
art B tag 3 
art C tag 1 
art C tag 3 

sql小提琴: http://sqlfiddle.com/#!6/8d30f/2

+0

这不是我要找的。 btw谢谢! :) –

+2

你在找什么?你能给我们一个你想要的输出样本吗? –

1

既然你不提供任何样品,我猜你只需要一个简单的想法:

SELECT a.*, t.* FROM Articles a 
    JOIN article_articleTags_Rel r 
    ON a.ArticleID = r.ArticleID_FK 
    JOIN articleTags t 
    ON t.TagID = r.TagID_FK 
+0

这不是我要找的。 btw谢谢! :) –