簡體   English   中英

如何在MYSQL中組合多個true / false行

[英]how to combine multiple true/false rows in MYSQL

我有一個包含各種true / false列的表的連接查詢。 我可以強制執行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?

任何幫助贊賞

正如你想要的那樣1,如果沒有,那么如果沒有,則MAX(標志)就足夠了。

SELECT name, MAX(flag) from table1
LEFT JOIN table3 ON table3.prod_id = table2.prod_id
LEFT JOIN table2.loc_id=table1.loc_id
GROUP BY name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM