如何查看单列数据

问题描述 投票:0回答:1

我正在尝试创建一个表视图,其中将包含相关数据的多个表合并为一个可读性更高的表(与5个单独的表相比。)>

所有要连接的表都包含预订参考作为外键。

这些表中的大多数包含与单个预订参考有关的多个条目。

例如某些预订有多只猫]

这是我创建的视图语句:

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有多个条目,据我所知,我遵循的格式应该使该视图非规范化,并在单个字段中显示多组数据。

我正在尝试创建一个表视图,其中将包含相关数据的多个表合并为一个可读性更高的表(与5个单独的表相比)。所有正在使用的表...

mysql sql join group-by sql-view
1个回答
1
投票

类似,问题出在您的GROUP BY子句,其列与SELECT子句中的非聚合列不匹配。实际上,您甚至在GROUP BY子句中有聚合的列:例如,BOOKOWNER.ID属于GROUP_CONCAT()子句的GROUP BY表达式and

© www.soinside.com 2019 - 2024. All rights reserved.