У меня есть этот запрос:MySQL Dynamic Query Challenge - Помогите пожалуйста!
SELECT
userlist.USERID,
(case when (sum(CASE WHEN track.OFFER_ID = 221 THEN 1 ELSE 0 END) > 1) then 1 else 0 end) offer_211
FROM
userlist
INNER JOIN track ON userlist.USERID = track.USERID
group by
userid
Это выход:
+------------+----------
| USERID | offer_211 |
+------------+----------
| 1657487706 | 0 |
| 1238439394 | 0 |
| 1238427171 | 1 |
| 1248431441 | 0 |
| 1248464345 | 1 |
Цель этого запроса:
Существует таблица пользователей, предложение таблицы и отслеживать таблицу. Таблица треков содержит все клики из таблицы пользователей. Я хочу создать представление, подобное выше, которое покажет мне все клики пользователей для всех предложений. Если пользователь нажал на определенное предложение, он отобразит «1» под этим предложением, если не отобразит «0». Все записи поступают из таблицы треков.
Вот что мне нужна помощь с:. Я хочу, чтобы иметь возможность динамически создавать столбцы «offer_211» от «предложения» таблицы вместо задав их вручную (см мой запрос)
Так, все предложения, которые пользователь щелкнул, или не щелкнул (столбцы), будет предлагать таблицу.
это должно быть так: «предлагают _» + offer.ID
Он должен выглядеть следующим образом: (предполагая, что есть только два предложения в предложении таблицы с идентификаторами 211, 212)
Там может быть 100 предложений в таблице предложений, поэтому для этого представления должно быть такое же количество динамических столбцов.
| USERID | offer_211 | offer_212 |
+------------+----------+-------------
| 1657487706 | 0 | 1 |
| 1238439394 | 0 | 0 |
| 1238427171 | 1 | 0 |
| 1248431441 | 0 | 1 |
| 1248464345 | 1 | 0 |
трек Таблица:
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| ID | int(22) | NO | PRI | NULL | auto_increment |
| OFFER_ID | int(22) | YES | MUL | NULL | |
| USERID | int(22) | YES | MUL | NULL | |
+------------+-------------+------+-----+---------+----------------+
список пользователей Таблица:
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| USERID | int(22) | NO | PRI | 0 | |
| EMAIL | varchar(200) | YES | | NULL | |
| FIRSTNAME | varchar(100) | YES | | NULL | |
| LASTNAME | varchar(100) | YES | | NULL | |
предложение Таблица:
+------------------+--------------+------+-----+-------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+-------------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| NAME | varchar(100) | YES | | NULL | |
| DESCRIPTION | text | YES | | NULL | |
| URL | text | YES | | NULL | |
Я пытаюсь создать эти столбцы (offer_221) динамически из таблицы предложений - вместо того, чтобы добавлять их вручную, как в моем запросе. – ipernix