2017-03-22 46 views
0

帮助需要 - 没有能够制定出一个简单的查询来执行以下任务:SQL查询 - 加入一对多值从另一个表/创建同一列两次/查找值当前表

Table 1 - Weblink 

ID Weblink  Language1_ID Language2_ID 
-- ---------- ------------ ------------ 
1 google.com 1    2 
2 amazon.cn (Null)   3 
3 yahoo.pl 5    1 
4 webex.jp 4    (Null) 

Table 2 - Language 

ID Language 
-- ----------- 
1 English 
2 French 
3 Chinese 
4 Japanese 
5 Polish 

最终的结果,我想看到:

ID Weblink  Language 
-- ---------- --------------- 
1 google.com English, French 
2 amazon.cn Chinese 
3 yahoo.pl Polish, English 
4 webex.jp Japanese 

我想填充所有语言到表中,如果可能的话用逗号合并多个值。

+0

的可能的复制[MS Access查询:通过查询串联行(http://stackoverflow.com/questions/5517233/ms-access- query-concatenating-rows-through-a-query) – GurV

回答

0

简单的解决方案。 (对不起,给你完整的SQL,但我很无聊)

SELECT A.ID, A.weblink, 
    (SELECT language FROM Table2 WHERE ID = A.Language1_ID) & _ 
    iif(A.Language1_ID is null, "", ", ") & _ 
    (SELECT language FROM Table2 WHERE ID = A.Language2_ID) AS Expr1 
FROM Table1 AS A; 
+0

非常感谢geeFlo,很棒的查询 - 正是我要找的!如果只存在语言1,则使用第二个嵌套iif语句隐藏逗号。 (A.Language1_ID为空,“”,iif(A.Language2_ID为空,“”,“,”)) 谢谢你的时间:-) – Vienna

相关问题