【问题标题】:Group_concat distint on selected columns in mysqlGroup_concat 在 mysql 中的选定列上不同
【发布时间】:2015-02-15 18:20:35
【问题描述】:

我有一张桌子apartment 如下

aid   |     aname   
 1    |    dream home
 2    |    My hub
 3    |    Lake view

另一个表apartment_details

id    |    aid    |    bhk    |   size    |    facing
 1    |     1     |     2     |   1200    |     east
 2    |     1     |     2     |   1200    |     west
 3    |     1     |     2     |   1000    |     south 
 4    |     1     |     2     |   1000    |     north

我把查询写成

    SELECT distinct ap.aid, ap.aname, al.bhk,  (select group_concat(distinct concat(al.bhk,'BHK - ',al.size)) from apartment_details as al where al.id = ap.aid) as details

当我尝试使用 foreach 显示 details 时,我得到的输出为

       2BHK - 1200
       2BHK - 1200
       2BHK - 1000
       2BHK - 1000

在这个查询中,它正在考虑 bhk、大小、不同的面,获得的输出基于面。这看起来就像我正在显示重复的数据或相同的数据正在重复,因为没有显示正面。如何仅显示基于 bhk、大小而不是面对的不同值,以便我得到输出为

       2BHK - 1200
       2BHK - 1000

谁能帮我解决这个问题?提前致谢

【问题讨论】:

  • 同一个公寓怎么可能有两种不同的尺寸? (360 度视图也有点不寻常,但并非不可想象)。

标签: mysql group-by subquery distinct group-concat


【解决方案1】:

以我的思维方式,一般来说,以 GROUP_CONCAT 为解决方案的 SQL 中没有问题。所以,考虑到这一点,让我们从这个开始:

SELECT DISTINCT bhk,size FROM apartment_details

【讨论】:

  • 因为它是一个子查询,所以它会抛出一个错误,因为操作数应该包含我使用 group_concat 的 1 列
猜你喜欢
  • 2019-05-29
  • 2011-11-22
  • 2021-11-02
  • 2016-08-29
  • 2011-03-06
  • 2014-09-27
  • 2015-12-31
  • 1970-01-01
相关资源
最近更新 更多