title: MySQL Dynamic Query Challenge - Help please!
body: <p>I have this query:</p>
  
  <hr>
  
  <pre><code>   SELECT  
      userlist.USERID,  
      (case when (sum( CASE WHEN track.OFFER_ID = 221  THEN 1 ELSE 0 END) &gt; 1) then 1 else 0 end) offer_211
  
  FROM  
  userlist  
  INNER JOIN track ON userlist.USERID = track.USERID  
  
  group by
  userid
  </code></pre>
  
  <hr>
  
  <p>This is the output:</p>
  
  <pre><code>+------------+----------
  | USERID     | offer_211 |
  +------------+----------
  | 1657487706 |         0 |  
  | 1238439394 |         0 |  
  | 1238427171 |         1 |  
  | 1248431441 |         0 |  
  | 1248464345 |         1 |  
  </code></pre>
  
  <p>Purpose of this query:</p>
  
  <p>There is a user table, offer table and track table. Track table contains all the clicks from user table. I want to create a view like above, which will show me all the clicks from users for all the offers. If the user clicked on a certain offer it will display '1' under that offer column, if not it will display '0'. All the records are coming from track table.</p>
  
  <p><strong>Here is what i need help with:
  I want to be able to dynamically create columns "offer_211" from "offer" table instead of specifing them manually.(see my query)</strong></p>
  
  <p>So, for all the offers that a user clicked, or not clicked (columns) would be from offer the table.</p>
  
  <p>it should be like this: "offer_"+offer.ID</p>
  
  <p>It should look like this: (assuming there are only 2 offers in the offer table with ids 211, 212)</p>
  
  <p><strong>There could be 100's of offers in the offer table so there should be the same amount of dynamic columns for this view.</strong></p>
  
  <pre><code>| USERID     | offer_211 | offer_212 |
  +------------+----------+-------------
  | 1657487706 |         0 |         1 |
  | 1238439394 |         0 |         0 |
  | 1238427171 |         1 |         0 |
  | 1248431441 |         0 |         1 |
  | 1248464345 |         1 |         0 |
  </code></pre>
  
  <p>track Table:</p>
  
  <pre><code>+------------+-------------+------+-----+---------+----------------+
  | 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    |                |
  +------------+-------------+------+-----+---------+----------------+
  </code></pre>
  
  <p>userlist Table:</p>
  
  <pre><code>+-------------+--------------+------+-----+---------+-------+
  | 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    |       |
  </code></pre>
  
  <p>offer Table:</p>
  
  <pre><code>+------------------+--------------+------+-----+-------------+----------------+
  | 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        |                |
  </code></pre>