2013-01-31 103 views
0

我为NOOB问题的appologise,但我无法让我的头围绕从两个表加入结果。加入两个SQL语句

我有一个表(表A)与类别的链接条目有列entry_id和CAT_ID

我有另一个表(tableB的)才是最重要的entry_id已经对时间戳观看次数

我想从tableB中得到entry_id的列表,它们按照它们被tableA中的cat_id查看和过滤的次数排序。

我有两个SQL语句,但无法弄清楚如何把它们放在一起。

声明1 - 某个特定类别中获得entry_id的:

SELECT entry_id FROM tableA WHERE cat_id = "" 

声明2 - 从tableB的获取entry_id的的排序列表:

SELECT entry_id FROM tableB GROUP BY entry_id ORDER BY COUNT(*) DESC 

谢谢!

+1

你读过任何教程? W3School是一个开始的好地方。 http://www.w3schools.com/sql和更具体http://www.w3schools.com/sql/sql_join.asp –

+0

嗨凯文 - 是的,我读了一大堆tutes我只是很慢(!)感谢您的评论。 – Tomtids

回答

1
SELECT 
    tableb.entry_id, 
FROM 
    tableb 
    INNER JOIN tablea 
    ON tableb.entry_id = tablea.entry_id 
    AND tablea.cat_id = "" 
GROUP BY 
    tableb.entry_id 
ORDER BY 
    COUNT(*) DESC 
+0

啊 - 一个稍微不同的方法。我会尝试他们两个。谢谢! – Tomtids

1

试试这个:

SELECT 
    A.entry_id, Count(B.entry_id) Viewed 
FROM TableA A 
LEFT JOIN TableB B 
    ON A.entry_id = B.entry_id 
WHERE A.Cat_Id = 5 -- your cat_id 
GROUP BY A.entry_id 
ORDER BY Count(B.entry_id) DESC 
+0

非常好,谢谢哈姆雷特 - 这是我第一次把整个信件分配给一张桌子。欢呼:) – Tomtids

+0

@Tomtids在上面的解决方案,你有损失的条目,从来没有看过。 –

+0

接受的答案实际上为我检索了正确的信息。我只想要符合当前类别ID的条目ID ...感谢您的帮助。 – Tomtids