【问题标题】:SQL Query, Get data from multiple tables and query resultSQL查询,从多个表中获取数据并查询结果
【发布时间】:2014-05-17 06:02:44
【问题描述】:

我有一个表 T1,其中包含列 (A、B、C、D),其中 A 是 PK。

我还有一些桌子。我想从这些表中获取一些数据。 我根据我的 sql 查询从这些表中获取数据。 sql查询(query1)如下

select t3.col1 as A, t3.col4 as F, t4.col as H
from t3, t4
where  t3.col1 = t4.col2;

现在 我想从表 T1 和上面的 query1 结果中获取数据。

select B , C , D , F,  H
from T1, Temp
where t1.A = Temp.A;

其中 Temp 是上面的 sql query1 结果。

我怎样才能做到这一点?

任何建议。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    我建议使用显式连接:

    select t1.B, t1.C, ..., t3.col1 as A, t3.col4 as F, t4.col as H
    from t3
    join t4
        on t3.col1 = t4.col2
    join t1
        on t1.A = t3.col1;
    

    【讨论】:

      【解决方案2】:

      试试这个

      SELECT t1.B as B, t1.C as B, t1.D as D, t3.col4 as F, t4.col as H
      FROM t1, t3, t4
      WHERE t1.A=t3.col1 AND t3.col1=t4.col2
      

      【讨论】:

      • query1 可以是其他任何查询,从多个表中获取数据,这里我只展示了2个表。
      【解决方案3】:

      使用内连接

      考虑这个例子

      让我们说两个表 第一个是“订单” 和 第二个是“客户”

      选择 Orders.OrderID(table_name.column_name)、Customers.CustomerName(table_name.column_name)、Orders.OrderDate(table_name.column_name) FROM Orders(第一个表名) INNER JOIN 客户(第二个表名) ON Orders.CustomerID=Customers.CustomerID(必须是加入的匹配字段);

      【讨论】:

        猜你喜欢
        • 2012-12-31
        • 1970-01-01
        • 2023-03-11
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-06
        • 2017-04-25
        相关资源
        最近更新 更多