在一个查询中获取最新的3个节点foreach taxonomy术语

时间:2015-05-06 14:44:59

标签: mysql sql drupal

我正在尝试设置查询以获取3个最近的节点(nid)foreach taxonomy term(tid)。这可以设置一个查询吗?

以下是我的表格设置方式(不显示完整的表格信息)

taxonomy_index (包含与节点关联的分类标识)

nid      tid
1         20
1         21
1         22
2         20
2         21
3         23
3         24
4         20
4         21
5         20
5         21
5         22
5         23
6         20
6         21
6         24
7         20
7         21
8         20
8         21
9         20
9         21
9         22
9         23
.....

节点(节点信息)

nid    title           created
1      Article One     1105350260
2      Article Two     1105350259
3      Article Three   1105350261
4      Article Four    1105350280
5      Article Five    1105350290
6      Article Six     1105350290
.....

如果我想查看最新的3个tids节点,我正在设想这样的结果:20,21,22:

tid     nid
20       1
20       2
20       4
21       1
21       2
21       4
22       1
22       5
22       9

这可以在一个查询中使用吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询: -

SELECT t.tid, t.nid
FROM taxonomy_index s
WHERE (SELECT COUNT(*)
  FROM taxonomy_index f
      WHERE f.tid = s.tid
  AND f.nid <= s.nid    
  ) <= 3;

这里我使用了&lt; = 3 #cond,如果任何tid没有3条记录,它将获取2或1,以较多者为准。