用JOIN连接时,如连接的是两个表,则连接表达式很好写,如:
select A.A1,A.A2,B.B1,B.A3 from A inner B ON A.A1=B.B1
但当连接的是两查询(或有一个是查询)时,ON 后面的连接表达式应如何写?如下面的语句应怎样写:
select 代码,型号,商品.品名,单位,数量,金额,进价,每件数量,每件盒数,每盒数,系列
from
(select 库房名称,品名,sum(数量),sum(金额) from
(select 库房名称,品名,数量,金额 from
(Select 发货仓库 as 库房名称,品名,数量,金额 from 销售 where 发货仓库='库房') union
(Select 进货仓库 as 库房名称,品名,总数量 AS 数量,金额 from 进货 where 进货仓库='库房') UNION
(Select 库房名称,品名,数量,金额 from 库房盘存表 where 库房名称='库房'))
group by 库房名称,品名)
INNER JOIN 商品 ON 商品.品名=?  '此处如何写?我希望三个联合查询返回的“品名”字段与“商品”表中的“品名”进行相等连接,应如何写?

解决方案 »

  1.   

    怎么没有人回答?
    其实我的问题很简单,不要被一长串的查询语句吓倒!我的问题其实就是一个查询如何与一个表JOIN连接?
      

  2.   

    看了是比较晕
    加 and table1.a=table2.b and taba2.c=tabale3.d
      

  3.   

    select A.A1,A.A2,B.B1,B.A3 from A, B where  A.A1 in(select ....)
      

  4.   


    我只想知道Join能否连接一个表与一个查询,并且如何实现?
      

  5.   

    select 代码,型号,商品.品名,单位,数量,金额,进价,每件数量,每件盒数,每盒数,系列
    from
    (select 库房名称,品名,sum(数量),sum(金额) from
    (select 库房名称,品名,数量,金额 from
    (Select 发货仓库 as 库房名称,品名,数量,金额 from 销售 where 发货仓库='库房') union
    (Select 进货仓库 as 库房名称,品名,总数量 AS 数量,金额 from 进货 where 进货仓库='库房') UNION
    (Select 库房名称,品名,数量,金额 from 库房盘存表 where 库房名称='库房'))
    group by 库房名称,品名) A
    INNER JOIN 商品 ON 商品.品名= A.品名
      

  6.   

    参看下面的例子,不知道合不合你的要求!SELECT dbo_pur_ship.ORDER_NO, dbo_PUR_VENDOR.ID
    FROM (dbo_pur_ship INNER JOIN dbo_pur_ship_head ON dbo_pur_ship.BILL_NO = dbo_pur_ship_head.BILL_NO) INNER JOIN dbo_PUR_VENDOR ON dbo_pur_ship.VENDOR = dbo_PUR_VENDOR.VENDOR
    WHERE (((dbo_pur_ship.ORDER_NO)<'G923784') AND ((dbo_PUR_VENDOR.ID)='23'));
      

  7.   

    这样做太麻烦了,而且查询速度很慢。
    为何不将3个表的查询创建一个视图呢?(在你的数据库中写代码)CREATE VIEW "数据库.视图1" AS SELECT …… -->三个表的组合查询。然后,再将"视图1和表3用JOIN连接。(或再构造一个新视图)SELECT …… FROM 视图1 INNER JION 表3 ON 视图1.品名=表3.品名对这样的复杂查询建立视图,查询速度要快得多,而且编程更方便和简单。
      

  8.   

    打错了。
    假设你有4个表需要你所说的组合查询。为何不将前3个表的查询创建一个视图呢?(在你的数据库中写代码)CREATE VIEW "数据库.视图1" AS SELECT …… -->三个表的组合查询。然后,再将"视图1和表4用JOIN连接。(或再构造一个新视图)SELECT …… FROM 视图1 INNER JION 表4 ON 视图1.品名=表4.品名对这样的复杂查询建立视图,查询速度要快得多,而且编程更方便和简单。
      

  9.   

    select 代码,型号,商品.品名,单位,数量,金额,进价,每件数量,每件盒数,每盒数,系列
    from
    (select 库房名称,品名,sum(数量),sum(金额) from
      (select 库房名称,品名,数量,金额 from
      (Select 发货仓库 as 库房名称,品名,数量,金额 from 销售 where 发货仓库='库房') 
       union
      (Select 进货仓库 as 库房名称,品名,总数量 AS 数量,金额 from 进货 where 进货仓库='库房') 
      UNION
      (Select 库房名称,品名,数量,金额 from 库房盘存表 where 库房名称='库房'))     group by 库房名称,品名)  bb       -- 此处给查询指定一个别名即可。
    INNER JOIN 商品 ON 商品.品名=bb.品名