to afeisky(刀光剑影(离开xkx@MUD的日子)) 大虾,你能具体改一改吗?我已经晕了头了。
to afeisky(刀光剑影(离开xkx@MUD的日子)) 救人救到底吧。
我改成这样也不行呀 select d.wname,o.customer,o.OrderTime ,d.quantity ,g.gethering ,g.remain ,f.farestatus ,s.quantity from orderdetail as d,orders as o,gethering as g,fare as f,shipment as s where d.OrderID=o.Orderid and d.DetailID=*g.DetailID and d.detailid=*f.detailid and d.detailid=*s.detailid
order by d.wname错误提示:The table 'orderdetail' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause. 只有去掉'd.OrderID=o.Orderid and'
to cszhz(丑小鸭) 我不能用内连接的,就是说不能用where ##=## 这种方式,因为我要求只限制OrderDetail的行而包含其它表的所有行。请问用Where如何实现????
to di2000(一只菜鸟) 可是括号加在哪呢?我像这样: select d.wname,o.customer,o.OrderTime ,d.quantity ,g.gethering ,g.remain ,f.farestatus ,s.quantity from OrderDetail as d (left join gethering as g on d.DetailID=g.DetailID) ( left join fare as f on d.detailid=f.detailid) ( left join shipment as s on d.detailid=s.detailid ) ( join orders as o on d.OrderID=o.OrderID) order by d.wname提示语法错。
to di2000(一只菜鸟) 我像这样 select d.wname,o.customer,o.OrderTime ,d.quantity ,g.gethering ,g.remain ,f.farestatus ,s.quantity from ( OrderDetail as d left join gethering as g on d.DetailID=g.DetailID left join fare as f on d.detailid=f.detailid left join shipment as s on d.detailid=s.detailid join orders as o on d.OrderID=o.OrderID) order by d.wname 在MS SQL倒是没错了,可ACCESS还是错呀。
我觉得还是不要用 join 语句的好 你改改吧
to WorldCreater(造化天尊) 为什么不能用,不用JOIN又能实现左连接,如何实现?请赐教。
to WorldCreater(造化天尊) 我一直在改,可怎么改呀?改来改去都不行呀
在Access2000中,可以这样写(语法检查通过),你可以试一下 select d.wname,o.customer,o.OrderTime ,d.quantity ,g.gethering ,g.remain ,f.farestatus ,s.quantity from (((OrderDetail as d left join gethering as g on d.DetailID=g.DetailID) left join fare as f on d.detailid=f.detailid) left join shipment as s on d.detailid=s.detailid) left join orders as o on d.OrderID=o.OrderID
我觉得可能可用这种办法试 select d.wname, o.customer, o.OrderTime, d.quantity, g.gethering, g.remain, f.farestatus, s.quantity from orders o Join OrderDetail d on d.OrderID = o.OrderID left join gethering g on d.DetailID = g.DetailID left join fare f on d.detailid = f.detailid left join shipment s on d.detailid = s.detailid order by d.wname
不使用外联 select d.wname,o.customer,o.ordertime,d.quantity,g.gething,g.remain, f.farestatus,f.quantity from orderdetail as d, orsers as o, gething as g, fare as f where d.detailid in(select detailid from gethering) and d.detailid in(select detailid from fare) and d.detailid in(select detailid from shipment) and d.orderid in(select ofderid from orders)试试看.
不好意思,写快了一点,漏了一点东西,重新发出select d.wname,o.customer,o.ordertime,d.quantity,g.gething,g.remain, f.farestatus,f.quantity from orderdetail as d, orsers as o, gething as g, fare as f where d.detailid in(select detailid from gethering where detailid=d.detialid) and d.detailid in(select detailid from fare where detialid=d.detailid) and d.detailid in(select detailid from shipment where detailid=d.detailid) and d.orderid in(select ofderid from orders where orderid=d.orderid)
越来越不好意思: select d.wname,o.customer,o.ordertime,d.quantity,g.gething,g.remain, f.farestatus,f.quantity from orderdetail as d, orsers as o, gething as g, fare as f, shipment as s where g.detailid=d.detialid and f.detialid=d.detailid and s.detailid=d.detailid and o.orderid=d.orderid
什么乱七八糟 懂不懂什么是left join 和where不一样的老兄们乱讲
小弟不明白,还请明言! 多谢. left join gethering as g on d.DetailID=g.DetailID 即使表D中的DetailID在g中不存在匹配项也要输出,是不是呀?
这个,刚刚开始学习SQL,很多地方不明白,还请各位高手不吝赐教. 在此谢过了!
你如果要在access中多表关联的话,可以试一下关联一个子关联啊,代码我等会打给你。
好了,为了简化,只关联三个(orderdetail, gethering, order) ////////////////////////////////////////////////////////////////// select d.wname, tmp.customer, tmp.gethering from OrderDetail as d left join (select g.detailID,o.customer,g.remain from orders as o left join gethering as g on g.detailID=o.detailID) as tmp on d.detailID=tmp.detailID ////////////////////////////////////////////////////////////////// 好了,拙见如此,如果有很多表的话,打这些字符都很恐怖,不过能运行多表关联(我试过),如果有那位兄弟有更好的方法,希望能发到 先在此谢谢了 ^_^
大虾,你能具体改一改吗?我已经晕了头了。
救人救到底吧。
select d.wname,o.customer,o.OrderTime
,d.quantity
,g.gethering
,g.remain
,f.farestatus
,s.quantity
from
orderdetail as d,orders as o,gethering as g,fare as f,shipment as s
where
d.OrderID=o.Orderid and
d.DetailID=*g.DetailID
and d.detailid=*f.detailid
and d.detailid=*s.detailid
order by d.wname错误提示:The table 'orderdetail' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.
只有去掉'd.OrderID=o.Orderid and'
我不能用内连接的,就是说不能用where ##=## 这种方式,因为我要求只限制OrderDetail的行而包含其它表的所有行。请问用Where如何实现????
where只是可以加查询条件的语句(个人认为)
我认为应该在括号上下文章
可是括号加在哪呢?我像这样:
select d.wname,o.customer,o.OrderTime
,d.quantity
,g.gethering
,g.remain
,f.farestatus
,s.quantity
from
OrderDetail as d (left join gethering as g on d.DetailID=g.DetailID)
( left join fare as f on d.detailid=f.detailid)
( left join shipment as s on d.detailid=s.detailid )
( join orders as o on d.OrderID=o.OrderID)
order by d.wname提示语法错。
我像这样
select d.wname,o.customer,o.OrderTime
,d.quantity
,g.gethering
,g.remain
,f.farestatus
,s.quantity
from
( OrderDetail as d left join gethering as g on d.DetailID=g.DetailID
left join fare as f on d.detailid=f.detailid
left join shipment as s on d.detailid=s.detailid
join orders as o on d.OrderID=o.OrderID)
order by d.wname
在MS SQL倒是没错了,可ACCESS还是错呀。
你改改吧
为什么不能用,不用JOIN又能实现左连接,如何实现?请赐教。
我一直在改,可怎么改呀?改来改去都不行呀
select d.wname,o.customer,o.OrderTime
,d.quantity
,g.gethering
,g.remain
,f.farestatus
,s.quantity
from
(((OrderDetail as d left join gethering as g on d.DetailID=g.DetailID)
left join fare as f on d.detailid=f.detailid)
left join shipment as s on d.detailid=s.detailid)
left join orders as o on d.OrderID=o.OrderID
select d.wname, o.customer, o.OrderTime, d.quantity, g.gethering,
g.remain, f.farestatus, s.quantity
from orders o
Join OrderDetail d on d.OrderID = o.OrderID
left join gethering g on d.DetailID = g.DetailID
left join fare f on d.detailid = f.detailid
left join shipment s on d.detailid = s.detailid
order by d.wname
select d.wname,o.customer,o.ordertime,d.quantity,g.gething,g.remain,
f.farestatus,f.quantity
from
orderdetail as d,
orsers as o,
gething as g,
fare as f
where
d.detailid in(select detailid from gethering) and
d.detailid in(select detailid from fare) and
d.detailid in(select detailid from shipment) and
d.orderid in(select ofderid from orders)试试看.
f.farestatus,f.quantity
from
orderdetail as d,
orsers as o,
gething as g,
fare as f
where
d.detailid in(select detailid from gethering where detailid=d.detialid) and
d.detailid in(select detailid from fare where detialid=d.detailid) and
d.detailid in(select detailid from shipment where detailid=d.detailid) and
d.orderid in(select ofderid from orders where orderid=d.orderid)
http://www.minisoft.d2g.com
1 疾病诊断专家系统;
2 人工智能电子地图 ;
3 Word密码探测器;
4 知道别人在干啥(局域网监视器)
5 日积月累学英文
愿意与广大VB爱好者交流.
select d.wname,o.customer,o.ordertime,d.quantity,g.gething,g.remain,
f.farestatus,f.quantity
from
orderdetail as d,
orsers as o,
gething as g,
fare as f,
shipment as s
where
g.detailid=d.detialid and
f.detialid=d.detailid and
s.detailid=d.detailid and
o.orderid=d.orderid
懂不懂什么是left join
和where不一样的老兄们乱讲
left join gethering as g on d.DetailID=g.DetailID
即使表D中的DetailID在g中不存在匹配项也要输出,是不是呀?
//////////////////////////////////////////////////////////////////
select d.wname, tmp.customer, tmp.gethering
from OrderDetail as d
left join
(select g.detailID,o.customer,g.remain from orders as o
left join gethering as g on g.detailID=o.detailID) as tmp
on d.detailID=tmp.detailID
//////////////////////////////////////////////////////////////////
好了,拙见如此,如果有很多表的话,打这些字符都很恐怖,不过能运行多表关联(我试过),如果有那位兄弟有更好的方法,希望能发到
先在此谢谢了 ^_^