按Where分组(field.id是相同的)

时间:2014-06-27 11:52:24

标签: mysql sql group-by field

标题

x---id---x---short_name---------x
|   1    |       alcatel        |
|   2    |       Nexus          |
|   3    |       ZTE            |
x--------x----------------------x

明细

x---id---x---------code---------x---header.id---x
|   1    |         XXX          |       1       |
|   2    |         ZZZ          |       2       |
|   3    |         ZZZ          |       2       |
|   4    |         XXX          |       3       |
x--------x----------------------x---------------x

我需要GROUP BY CODE其中field.id是相同的,例如: 在这种情况下,我得到2行相同的field.id所以我需要按我的字段代码分组,以防万一field.id是相同的.. (我很难解释......)

我需要得到这个

x---header.id---x--detail.id--x-----short_name----x---detail.code---x
|       1       |      1      |     alcatel      |       XXX       |
|       2       |      3      |     Nexus        |       ZZZ       |
|       3       |      4      |     ZTE          |       XXX       |
x---------------x-------------x------------------x-----------------x

我不知道这是否真的可以做,但如果是,请帮助我,如果不是,请告诉我这是不可能的。

编辑:我的 field.id field.code (ID和CODE字段)来自一个名为字段

2 个答案:

答案 0 :(得分:0)

select h.id as header_id, max(d.id) as detail_id, h.short_name, d.code
from header h
join detail d on d.`header.id` = h.id
group by header_id, h.short_name, d.code

答案 1 :(得分:0)

试试这个

SELECT MAX(id) AS id, `field.id`, code
FROM test
GROUP BY code, `field.id`
ORDER BY id ASC

检查SQL Fiddle