【发布时间】:2016-12-10 16:41:10
【问题描述】:
我有车间有厂家,一个车间可以有很多厂家,但只有一个官方。我想获得所有拥有制造商 22 的车间,但如果他们有相同的大桶,则只获得制造商官方的车间
我有 2 张桌子,第一个研讨会
id | name | vat
-------------------------
1 | name 1 | B12
2 | name 2 | B12
3 | name 3 | B12
4 | name 4 | E98
5 | name 5 | A99
第二车间_制造商
id | workshop_id | manufacturer_id | official
----------------------------------------------
1 | 1 | 22 | 0
2 | 2 | 22 | 0
3 | 3 | 22 | 1
4 | 4 | 22 | 0
5 | 5 | 22 | 1
5 | 5 | 23 | 0
5 | 5 | 24 | 0
我想获得独特的研讨会(按增值税分组),但如果有许多与该制造商合作的具有相同增值税的研讨会,我想获得官方的(官方=1)。
如果我做这个查询:
SELECT t1.*,t2.* FROM workshop t1
INNER JOIN workshop_manufacturer t2 ON t1.id=t2.workshop_id
WHERE t2.manufacturer.id = 22
GROUP bY t1.vat
我明白了:
id | name | vat | official | manufacturer_id
-----------------------------------------------
1 | name 1 | B12 | 0 | 22
4 | name 4 | E98 | 0 | 22
5 | name 5 | A99 | 1 | 22
我想要这个:
id | name | vat | official | manufacturer_id
-----------------------------------------------
3 | name 3 | B12 | 1 | 22
4 | name 4 | E98 | 0 | 22
5 | name 5 | A99 | 1 | 22
所有官方和非官方的研讨会,但优先考虑官方的研讨会
【问题讨论】:
-
查看此链接,您可能会了解如何按工作分组 php mysql GROUP BY … get the last occurence
标签: php mysql group-by inner-join