我有一个包含各种真/假列的表的连接查询。我可以强制执行 DISTINCT & GROUP BY 以确保只返回单个唯一行,但是真/假行的行为无法预测,例如:
**Table 1**
loc_id name
-------------
1 a
2 b
3 c
4 d
**Table 2**
prod_id loc_id value
-------------
1 1 abc
2 1 bcd
3 1 def
4 2 fgh
**Table 3**
prod_id flag
-------------
1 0
2 0
3 1
4 1
SELECT DISTINCT name, flag from table1
LEFT JOIN table3 ON table3.prod_id = table2.prod_id
LEFT JOIN table2.loc_id=table1.loc_id
这给了我包含 loc 名称列表的行。但是标志列有时会返回多行,我想做的是组合这些行,以便如果有多个行,并且它们同时包含 0 和 1,则查询将只返回标志设置为 1 的一行。如果有多个行包含 0,它将为该行返回 0...我尝试使用 GROUP BY 名称,它返回唯一的行,但是我注意到对于在标志列中设置了 0 和 1 的重复行,它将返回 0?
任何帮助表示赞赏