У меня есть некоторые данные бронирования из пары представлений в MySQL. Они отлично соответствуют колонкам, и основное отличие - это код бронирования, который помещается в одну из этих строк.Запрос MySQL Union (или аналогичный)
Контекст следующий: это для расчета чисел для спортивного лагеря. Люди забронированы, но могут делать дополнительные занятия.
View 1: Все специализированные заказы (скажем: футбольный класс).
Просмотреть 2: Общая группа.
Из-за старого программного обеспечения процесс бронирования приводит к тому, что многие люди заказывают для общей группы, а затем переходят на старый класс. Это еще более осложняется некоторыми вещами в другом месте бизнеса.
Чтобы быть ясным - вид 1 фактически содержит некоторых (но не исключительно всех) людей изнутри. 2. Существует пересечение двух групп. Очевидно, люди не могут быть в двух группах одновременно (есть только один из них!).
Нахождение всех людей, находящихся в поле зрения 2, конечно, легко ... как View 1. НО, я должен подготовить доклад, который в основном:
- «Вид 1» перезапись «View 2 »... или поставить еще один способ:
- „Вид 1“[рода] UNION„Вид 2“
Однако: Я не уверен, что лучший способ сделать это, поскольку есть дополнительные сложности:
Каждая строка имеет вид ap проксимальном (с другими вещами опущены) следующим образом:
User ID Timeslot Activity
1 A Football
1 A General
2 A General
3 A Football
Как вы можете видеть, эти строки все касается временного интервала A: - Пользователь 2 делает общую деятельность. - Пользователь 3 делает футбол. - Пользователь 1 делает футбол и вообще.
AS эти элементы не уникальны, вышесказанное является UNION (отличным), так как нет действительно разных строк.
Выход мне нужно следующим образом:
User ID Timeslot Activity
1 A Football
2 A General
3 A Football
Здесь, футбол взял «приоритет» над «вообще», и, таким образом, я получаю картину, где люди в любое время.
Этот UNION имеет отдельное предложение по ряду полей, но игнорирует другие.
Итак: Кто-нибудь знает, как сделать то, что составляет:
- «добавить две таблицы вместе и перезаписать одну из них, если это тот же временной интервал»
Или что-то вроде:
- "селективный отчет о СОЕДИНЕНИИ ДИСЦИПЛИНА".
Приветствия Rick
К сожалению, мне запретили использовать «группу по» без агрегатной функции: на самом деле это не намеренное поведение в SQL. См. Мой предыдущий вопрос: http://stackoverflow.com/questions/15966530/mysql-edge-case-use-of-group-by – elb98rm