首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:如何将大量列和大量表的特定值连接到一个查询中?

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

Stack Overflow用户
提问于 2015-02-06 00:17:35
回答 1查看 42关注 0票数 1

我在SQL上有点新手(如果这个问题在其他地方得到了回答,我很抱歉,尽管我似乎找不到任何能解决这个问题的方法),而且在这个问题上我已经困惑了很久了。作为前言,我对各种连接和内部连接等进行了研究和了解,我了解它们是如何工作的,而且对于较小数量的数据,它们似乎工作得很好。但是,我的问题是,列数和表数都很大,我需要知道是否有更简单的方法将这些数据连接到一个查询中。

这就是我所拥有的:

代码语言:javascript
复制
 $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之间使用一个简单的逗号分隔,但是我被抛出一个不明确的列错误。我知道这是因为我没有补充

代码语言:javascript
复制
phase1.fen_toit

代码语言:javascript
复制
phase1.tuiles

等等,选择,因为这似乎是荒谬的长!

如果有人能帮忙,我会非常感激的。我敢肯定答案就在我眼前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-06 01:21:47

使用UNIONUNION ALL连接查询,如下所示:

代码语言:javascript
复制
$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)";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28356503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档