Я пытаюсь создать представление таблицы, в которой несколько таблиц, содержащих связанные данные, объединены в гораздо более удобочитаемую таблицу по сравнению с 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, из того, что я знаю, формат, которому я следовал, должен был ненормализовать это представление и показать несколько наборов данных в одном поле.