I have the following mysql query. How can i make the result of the query be a new table;
SELECT t1.referree AS LEVEL1, t2.referree AS LEVEL2, t3.referree AS LEVEL3, t4.referree AS LEVEL4, t5.referree AS LEVEL5, t6.referree AS LEVEL6, t7.referree AS LEVEL7, t8.referree AS LEVEL8, t9.referree AS LEVEL9, t10.referree LEVEL10, t11.referree AS LEVEL11
FROM referrals AS t1
LEFT JOIN referrals AS t2 ON t2.referrer = t1.referree
LEFT JOIN referrals AS t3 ON t3.referrer = t2.referree
LEFT JOIN referrals AS t4 ON t4.referrer = t3.referree
LEFT JOIN referrals AS t5 ON t5.referrer = t4.referree
LEFT JOIN referrals AS t6 ON t6.referrer = t5.referree
LEFT JOIN referrals AS t7 ON t7.referrer = t6.referree
LEFT JOIN referrals AS t8 ON t8.referrer = t7.referree
LEFT JOIN referrals AS t9 ON t9.referrer = t8.referree
LEFT JOIN referrals AS t10 ON t10.referrer = t9.referree
LEFT JOIN referrals AS t11 ON t11.referrer = t10.referree
WHERE t1.referrer ='2'));
Simple create the view
instead of table
view is nothing but , a view is a virtual table
based on the result-set
of an SQL statement
.
CREATE VIEW view_name AS SELECT t1.referree .....
You can create one table from another by adding a SELECT statement at the end of the CREATE TABLE statement:
CREATE TABLE new_tbl [AS] SELECT select_statement;
Replace the select statement with the select statement that you have above.
Ref: https://dev.mysql.com/doc/refman/5.7/en/create-table-select.html
Edit: As jyothi suggested in a comment, you might wanna use a View instead of a new table in this case. If that's the case, you could use something like this:
CREATE VIEW view_name AS SELECT select_statement;
assuming all the columns are varchar(10) datatype, try this syntax :
CREATE TABLE new_table (Level1 varchar(10),Level2 varchar(10),Level3 varchar(10),Level4 varchar(10),Level5 varchar(10),Level6 varchar(10),Level7 varchar(10),Level8 varchar(10),Level9 varchar(10),Level10 varchar(10),Level11 varchar(10))
SELECT
t1.referree AS LEVEL1,
t2.referree AS LEVEL2,
t3.referree AS LEVEL3,
t4.referree AS LEVEL4,
t5.referree AS LEVEL5,
t6.referree AS LEVEL6,
t7.referree AS LEVEL7,
t8.referree AS LEVEL8,
t9.referree AS LEVEL9,
t10.referree LEVEL10,
t11.referree AS LEVEL11
FROM
referrals AS t1 LEFT JOIN referrals AS t2
ON t2.referrer = t1.referree
LEFT JOIN referrals AS t3
ON t3.referrer = t2.referree
LEFT JOIN referrals AS t4
ON t4.referrer = t3.referree
LEFT JOIN referrals AS t5
ON t5.referrer = t4.referree
LEFT JOIN referrals AS t6
ON t6.referrer = t5.referree
LEFT JOIN referrals AS t7
ON t7.referrer = t6.referree
LEFT JOIN referrals AS t8
ON t8.referrer = t7.referree
LEFT JOIN referrals AS t9
ON t9.referrer = t8.referree
LEFT JOIN referrals AS t10
ON t10.referrer = t9.referree
LEFT JOIN referrals AS t11
ON t11.referrer = t10.referree
WHERE
t1.referrer ='2'));