0

我有两个表格问题和标签,每个问题都与我想使用查询获取问题和相关标签的许多标签相关联。我不知道如何获取它。

questions 
qid ques
Q1  abc
Q2  rst 


tags
id  tag   qid
T1   css   1
T2   html  1
T3   java  1
T4   php   2
T5   c++   2
T6   html  2     

我想要结果为

Q1 abc   T1   css   1
         T2   html  1
         T3   java  1

q1 abc 不应与标签重复

4

3 回答 3

2

如果您的问题至少有一个标签使用INNER JOIN

SELECT  a.*, b.*
FROM    Question a
        INNER JOIN tags b
            ON a.qid = b.qid
-- WHERE a.qid = 1
ORDER BY a.qid, b.id

但是如果标签是可选的并且您仍然希望问题显示在结果列表中,请使用LEFT JOIN

SELECT  a.*, b.*
FROM    Question a
        LEFT JOIN tags b
            ON a.qid = b.qid
-- WHERE a.qid = 1
ORDER BY a.qid, b.id
于 2012-12-26T10:48:08.337 回答
2

用这个:

SELECT q.qid,q.ques,t.id, t.tag,t.qid FROM questions AS q JOIN tags AS t WHERE q.qid = t.qid
于 2012-12-26T10:54:43.427 回答
0
 SELECT ques,tag FROM quesions t1,tags t2 ON t1.qid = t2.qid
于 2012-12-26T10:50:00.413 回答