Mysql 如何查看单列上的数据

Mysql 如何查看单列上的数据,mysql,sql,join,group-by,sql-view,Mysql,Sql,Join,Group By,Sql View,我试图创建一个表的视图,其中包含相关数据的多个表被组合成一个可读性更强的表,而不是5个单独的表 正在联接的所有这些表都包含预订引用作为外键 这些表中的大多数都包含关于单个预订参考的多个条目 e、 g.有些预订有多个CAT 以下是我创建的视图语句: USE CATTERY; CREATE VIEW ALLBOOKING AS SELECT BOOK.Ref, BOOK.Food, BOOK.Interact, BOOK.Litter, BOOK.Start_Date, BOOK.End_Date,

我试图创建一个表的视图,其中包含相关数据的多个表被组合成一个可读性更强的表,而不是5个单独的表

正在联接的所有这些表都包含预订引用作为外键

这些表中的大多数都包含关于单个预订参考的多个条目

e、 g.有些预订有多个CAT

以下是我创建的视图语句:

USE CATTERY;
CREATE VIEW ALLBOOKING
AS
SELECT BOOK.Ref, BOOK.Food, BOOK.Interact, BOOK.Litter, BOOK.Start_Date, BOOK.End_Date, BOOK.Deposit, BOOK.Cost,
    GROUP_CONCAT( DISTINCT BOOKOWNER.ID) AS `Owner`,
    GROUP_CONCAT( DISTINCT BOOKCAT.Chip_ID) AS Cats,
    GROUP_CONCAT( DISTINCT BOOKOBS.ID) AS Observations,
    GROUP_CONCAT( DISTINCT BOOKROOM.ID) AS Room
FROM BOOK 
INNER JOIN BOOKOWNER ON BOOK.Ref = BOOKOWNER.Ref 
INNER JOIN BOOKCAT ON OOK.Ref = BOOKCAT.Ref
INNER JOIN BOOKOBS ON BOOK.Ref = BOOKOBS.Ref 
INNER JOIN BOOKROOM ON BOOK.Ref = BOOKROOM.Ref 

GROUP BY BOOK.Ref, BOOKOWNER.ID, BOOKCAT.Chip_ID, BOOKOBS.ID, BOOKROOM.ID
下面是结果表:

(ref)(food)(interact)(litter)(start date)(end date)(deposit)(cost)(owner)(catid)(observations)(room) 
'1', '1', '1', '0', '2019-11-22', '2019-11-25', '5', '53', '1', '1', '1', '4'
'1', '1', '1', '0', '2019-11-22', '2019-11-25', '5', '53', '1', '1', '2', '4'
'1', '1', '1', '0', '2019-11-22', '2019-11-25', '5', '53', '1', '1', '3', '4'
'1', '1', '1', '0', '2019-11-22', '2019-11-25', '5', '53', '1', '1', '4', '4'
'2', '0', '0', '2', '2019-11-24', '2019-11-28', '10', '104', '1', '2', '5', '3'

正如您所看到的,关于参考编号1有多个条目,据我所知,我所采用的格式应该使该视图非规范化,并在单个字段中显示多组数据

问题可能出在您的
GROUP BY
子句上,该子句的列与
SELECT
子句中的非聚合列不匹配。事实上,您甚至在
groupby
子句中有聚合列:例如,
BOOKOWNER.ID
既属于
GROUP\u CONCAT()
表达式,也属于
groupby
子句

在大多数数据库中,这会导致错误(在MySQL中,如果启用了sql模式
ONLY\u FULL\u GROUP\u BY

考虑改变这一点:

GROUP BY BOOK.Ref, BOOKOWNER.ID, BOOKCAT.Chip_ID, BOOKOBS.ID, BOOKROOM.ID
致:

GROUP BY 
    BOOK.Ref, 
    BOOK.Food, 
    BOOK.Interact, 
    BOOK.Litter, 
    BOOK.Start_Date, 
    BOOK.End_Date, 
    BOOK.Deposit, 
    BOOK.Cost