假设一个对象可以有多个 tid
现在假设我做这个查询:
SELECT n.nid, t.tid, GROUP_CONCAT(t.tid)
FROM node n JOIN term_node t ON t.nid = n.nid
GROUP BY n.nid
HAVING t.tid = 31;
我想在其中获取 tid = 31 的表节点中的条目......但是我还想要一个与该行相对应的所有 tid 的列表(因此是 GROUP_CONCAT),即使它们不是 31
使用 WHERE t.tid = 31 将从 GROUP concat 中忽略不是 31 的 tid,使用 HAVING t.tid = 31 将忽略 GROUPed 行中出现的 tid 列不是 31 的行
无论哪种方式都有可能使 GROUP_CONCAT 列表不完整或至少一个 tid = 31 的节点行不完整
有没有办法解决这个问题,这样我可以保证获得所有节点,其中该节点至少有一个 tid 关联等于 31,并且 GROUP_CONCAT 将列出所有与该节点关联的 tid 列表?