用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 商品.品名=? '此处如何写?我希望三个联合查询返回的“品名”字段与“商品”表中的“品名”进行相等连接,应如何写?
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 商品.品名=? '此处如何写?我希望三个联合查询返回的“品名”字段与“商品”表中的“品名”进行相等连接,应如何写?
其实我的问题很简单,不要被一长串的查询语句吓倒!我的问题其实就是一个查询如何与一个表JOIN连接?
加 and table1.a=table2.b and taba2.c=tabale3.d
我只想知道Join能否连接一个表与一个查询,并且如何实现?
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.品名
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'));
为何不将3个表的查询创建一个视图呢?(在你的数据库中写代码)CREATE VIEW "数据库.视图1" AS SELECT …… -->三个表的组合查询。然后,再将"视图1和表3用JOIN连接。(或再构造一个新视图)SELECT …… FROM 视图1 INNER JION 表3 ON 视图1.品名=表3.品名对这样的复杂查询建立视图,查询速度要快得多,而且编程更方便和简单。
假设你有4个表需要你所说的组合查询。为何不将前3个表的查询创建一个视图呢?(在你的数据库中写代码)CREATE VIEW "数据库.视图1" AS SELECT …… -->三个表的组合查询。然后,再将"视图1和表4用JOIN连接。(或再构造一个新视图)SELECT …… FROM 视图1 INNER JION 表4 ON 视图1.品名=表4.品名对这样的复杂查询建立视图,查询速度要快得多,而且编程更方便和简单。
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.品名