Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使join语句的结果成为新表_Php_Mysql_Left Join - Fatal编程技术网

Php 如何使join语句的结果成为新表

Php 如何使join语句的结果成为新表,php,mysql,left-join,Php,Mysql,Left Join,我有以下mysql查询。如何使查询结果成为新表 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

我有以下mysql查询。如何使查询结果成为新表

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'));

通过在create table语句末尾添加SELECT语句,可以从一个表创建另一个表:

CREATE TABLE new_tbl [AS] SELECT select_statement;
用上面的select语句替换select语句

参考:

编辑:正如jyothi在评论中所建议的,在这种情况下,您可能希望使用视图而不是新表。如果是这样的话,您可以使用以下内容:

CREATE VIEW view_name AS SELECT select_statement;

Ref:

简单地创建
视图
而不是

视图不过是一个基于
SQL语句的
结果集的
虚拟表

CREATE VIEW view_name AS SELECT t1.referree ..... 

假设所有列都是varchar(10)数据类型,请尝试以下语法:

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'));

我认为您需要创建视图。只需创建视图而不是表格谢谢@JYoThI,帮我实现它请查看我下面的回答谢谢@jyothl谢谢@Arvind@PeterMutai:很乐意帮忙。那么您是创建了视图还是新表?