加入两个SQL语句

时间:2013-01-31 15:56:16

标签: mysql join

我为NOOB问题道歉,但我无法理解两张桌子的JOINING结果。

我有一个表(tableA)链接带有类别的条目有列entry_id和cat_id

我有另一个表(tableB),它计算了对一个时间戳查看entry_id的次数

我想从tableB获取一个entry_id列表,按照表A中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

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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