我有這個疑問:MySQL動態查詢挑戰 - 請幫助!
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'。所有記錄都來自軌道表。
這裏是我需要幫助。 我希望能夠動態地創建列從「報價」表,而不是手動specifing他們「offer_211」(見我的查詢)
所以,用戶點擊或未點擊(列)的所有優惠將來自提供該表格。
它應該是這樣的: 「報價_」 + offer.ID
它應該是這樣的:(假設只有2報價與IDS 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 2010-08-26 07:24:59