我有这张表:
Relate : (ID,ArticleID,rArticleID)
TagInArticle: (ItemID,TagID,ArticleID)
我希望一起选择两张桌子。但关联表的结果首先显示
TagInArticle
表的结果在它之后由它自己按计数
对于每个表的选择我使用此代码:
quey1:
select ArticleID, COUNT(*)
as counts from TagInArticle
where TagID in ( select [TagID]
from TagInArticle
where ArticleID=5 ) and ArticleID!=5
group by ArticleID
和:
query2:
select rArticleID from Relate
where ArticleID=1
如果表TagInArticle的结果是:
ArticleID counts
1 | 1
5 | 3
和相关表的结果
ArticleID
7
我想表明:
7
5
1
我该怎么做?
答案 0 :(得分:1)
这是你正在寻找的东西
SELECT R.ArticleID
,COUNT(T.ArticleID) AS Total
FROM Relate R INNER JOIN TagInArticle T
ON R.ArticleID = T.ArticleID
WHERE R.ArticleID = 1
GROUP BY R.ArticleID
ORDER BY Total DESC
我没有最模糊的线索你想要做什么但是在查看你提供的结果集之后你可以做这样的事情..一个简单的UNION ALL
SELECT ArticleID
(
select ArticleID, COUNT(*)
as counts from TagInArticle
where TagID in ( select [TagID]
from TagInArticle
where ArticleID=5 ) and ArticleID!=5
group by ArticleID
)A
UNION ALL
select rArticleID
from Relate
where ArticleID=1
答案 1 :(得分:0)
试试这个,
select r.ArticleID, ta.TagIDCount as counts
from Relate as r
left join
(
select ArticleID,count([TagID]) as TagIDCount
from TagInArticle
group by ArticleID
)as ta on ta.ArticleID = r.ArticleID
order by r.ArticleID desc
已下载订单