这样会有问题,t1.id相同的时候,但是t2.subject不同,会分成两组吧?
时间: 2024-02-23 09:59:02 浏览: 115
ITU-T Q.931 ISDN E1/T1信令
如果`t1.id`相同但`t2.subject`不同,将会被分成两个不同的分组。如果您只想按照`t1.id`进行分组,并且不考虑`t2.subject`的值,可以使用一个聚合函数,例如`MAX`,将`t2.subject`字段合并到一个值中,然后在`SELECT`子句中返回这个值。例如:
```
SELECT t1.id, MAX(t2.subject) AS subject, MAX(t3.imagefileid) AS imagefileid
FROM uf_wdcdzsxbd t1
JOIN docdetail t2 ON t1.tm = t2.id
JOIN docimagefile t3 ON t2.id = t3.docid
WHERE t1.id IN (3, 2, 1)
GROUP BY t1.id
ORDER BY CASE t1.id
WHEN 3 THEN 1
WHEN 2 THEN 2
WHEN 1 THEN 3
END;
```
在这个查询中,我们使用`MAX`函数将`t2.subject`合并到一个值中,并将结果命名为`subject`。我们仍然按照`t1.id`的顺序进行排序。这样,即使`t1.id`相同但`t2.subject`不同,它们仍然会被视为同一个分组,因为它们具有相同的`t1.id`值。
阅读全文