0

我为 NOOB 问题道歉,但我无法理解两个表的 JOINING 结果。

我有一个将条目与类别链接的表(tableA)具有列 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

谢谢!

4

2 回答 2

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
于 2013-01-31T16:01:02.477 回答
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
于 2013-01-31T16:03:35.260 回答