我在MySQL中有下表:
id | item_id | uom | uom1
1 1 kg box
当我从表中选择全部时,它将显示一行。
如果uom和uom1不同,我想使其显示两行。
例如,uom = kg和uom1 = box,则结果将显示
id | item_id | uom
1 1 kg
2 1 box
如果uom和uom1相同(kg),则仅显示一行
id | item_id | uom
1 1 kg
是否可以使用sql做到这一点?然后我将其循环显示。
最佳答案
一种简单的方法是
select id, item_id, uom from tbl union
select id, item_id, uom1 from tbl
UNION
默认情况下将滤除重复的行。不需要其他“技巧” ...@Neeraj Wadhwa建议将第二行更改为:
select id, item_id, uom1 as uom from tbl
这是可能的,并且将产生相同的结果,但实际上不是必需的。无论如何,
UNION
构造中的列名称将由第一条select语句确定。