Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
Mysql SQL:如何将大量列和大量表中的特定值连接到一个查询中?_Mysql_Sql_Join - Fatal编程技术网

Mysql SQL:如何将大量列和大量表中的特定值连接到一个查询中?

Mysql SQL:如何将大量列和大量表中的特定值连接到一个查询中?,mysql,sql,join,Mysql,Sql,Join,我对SQL有点生疏(如果其他地方已经回答了这个问题,我表示歉意,尽管我似乎找不到任何可以解决这个问题的方法),并且在这个问题上被难住了很久。作为前言,我已经研究并了解了各种连接和内部连接等,我了解它们是如何工作的,并且它们似乎在较小的数据量下工作得很好。但是,我的问题是列和表的数量太多,我需要知道是否有更简单的方法将这些数据连接到一个查询中 这就是我所拥有的: $query2 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase1 W

我对SQL有点生疏(如果其他地方已经回答了这个问题,我表示歉意,尽管我似乎找不到任何可以解决这个问题的方法),并且在这个问题上被难住了很久。作为前言,我已经研究并了解了各种连接和内部连接等,我了解它们是如何工作的,并且它们似乎在较小的数据量下工作得很好。但是,我的问题是列和表的数量太多,我需要知道是否有更简单的方法将这些数据连接到一个查询中

这就是我所拥有的:

 $query2 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase1 WHERE id IN(3,12,22)";
    $query3 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase2 WHERE id IN(3,12,22)";
    $query4 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase3 WHERE id IN(3,12,22)";
    $query5 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase4 WHERE id IN(3,12,22)";
    $query6 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase5 WHERE id IN(3,12,22)";
    $query7 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase6 WHERE id IN(3,12,22)";
    $query8 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase7 WHERE id IN(3,12,22)";
    $query9 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase8 WHERE id IN(3,12,22)";
    $query10 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase9 WHERE id IN(3,12,22)";
    $query11 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase10 WHERE id IN(3,12,22)";
    $query12 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase11 WHERE id IN(3,12,22)";
    $query13 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase12 WHERE id IN(3,12,22)";
我想将这些查询结果合并到一个查询中。我曾尝试在phase1、phase2 e.t、c之间使用简单的逗号分隔,但我遇到了一个不明确的列错误。我理解这是因为我没有补充

phase1.fen_toit

等等来选择,因为这看起来太长了


如果有人能帮忙,我将不胜感激。我确信答案就在眼前

使用
UNION
UNION ALL
加入您的查询,如下所示:

$query2 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase1 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase2 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase3 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase4 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase5 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase6 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase7 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase8 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase9 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase10 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase11 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase12 WHERE id IN(3,12,22)";

因此,下一步请参见normalization使用
UNION
组合它们。您还可以使用
MERGE
存储引擎创建一个表,该表在所有这些表之间自动执行
UNION
$query2 = "SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase1 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase2 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase3 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase4 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase5 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase6 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase7 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase8 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase9 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase10 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase11 WHERE id IN(3,12,22)
             UNION ALL
           SELECT fen_toit,tuiles,zinc,bois,bac_acier FROM phase12 WHERE id IN(3,12,22)";