Как добавить в свой запрос новый столбец, в котором отображаются данные, которые меньше текущей даты? - PullRequest
0 голосов
/ 21 февраля 2019

В моем текущем запросе, показанном ниже, отображаются сведения о пользователях и событиях, на которые они подписаны, однако после того, как они посетили событие, мне нужен еще один столбец, в котором указано WHERE Start_Date

SELECT users.username, users.user_firstname, users.user_lastname, users.user_role,
       GROUP_CONCAT( Events.Event_Name ) AS Event_Names, COUNT(Events.Event_Name) AS Event_Count
FROM users LEFT JOIN 
     user_events
     ON users.id = user_events.id LEFT JOIN
     Events
     ON Events.Event_ID = user_events.Event_ID
GROUP BY users.username, users.user_firstname, users.user_lastname, users.user_role

В идеале:

| username| user_firstname | user_lastname | user_role | Event_Name |PreEve                               
| M       | jo             | mccann        | employee  | baking,run | fight

1 Ответ

0 голосов
/ 21 февраля 2019

Это то, что вы хотите?

SELECT u.username, u.user_firstname, u.user_lastname, u.user_role,
       GROUP_CONCAT(CASE WHEN e.Start_Date < CURDATE() THEN e.Event_Name END) AS Previous_Event_Names, 
       GROUP_CONCAT(CASE WHEN e.Start_Date >= CURDATE() THEN e.Event_Name END) AS Future_Event_Names, 
       COUNT(e.Event_Name) AS Event_Count
FROM users u LEFT JOIN 
     user_events ue
     ON u.id = ue.id LEFT JOIN
     Events e
     ON e.Event_ID = ue.Event_ID
GROUP BY u.username, u.user_firstname, u.user_lastname, u.user_role;

GROUP_CONCAT() игнорирует NULL значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...