a表 列 c_no 合同号
cid 客户ID
sid 供应商IDb表 c_id 客户供应商ID
c_name 客户供应商名字
c_flag 客户供应商标志c_id 关联着 a表的cid 和 sid客户和供应商是存在一个表里的,我现在想提取 a表所有数据,并且关联的提出b表的客户供应商名字,客户供应商ID是没有重复的,语句该怎么写
如果不在一个表到好读取,可是我现在这样读取
select * from a,b where a.cid = b.c_id and a.sid = b.c_id ,是根本读不出来的,因为b.c_id是一列
用什么语句可以显示出 这样格式 合同号,客户名称,供应商名称。
cid 客户ID
sid 供应商IDb表 c_id 客户供应商ID
c_name 客户供应商名字
c_flag 客户供应商标志c_id 关联着 a表的cid 和 sid客户和供应商是存在一个表里的,我现在想提取 a表所有数据,并且关联的提出b表的客户供应商名字,客户供应商ID是没有重复的,语句该怎么写
如果不在一个表到好读取,可是我现在这样读取
select * from a,b where a.cid = b.c_id and a.sid = b.c_id ,是根本读不出来的,因为b.c_id是一列
用什么语句可以显示出 这样格式 合同号,客户名称,供应商名称。
,E.c_name as '客户名称'
,F.c_name as '供应商名称'
from a as D
inner join b as E on D.cid = E.c_id
inner join b as F on D.sid = F.c_id
select c_no as 合同号,b.c_name as 客户名称,c.c_name as 供应商名称 from a
join b on a.cid=b.c_id
join b c on a.sid=c.c_id
0001 001 002 b表 有两行 客户供应商ID 客户供应商名称 标示
001 鸳鸯线业 0
002 中天农业 1
0是表示客户,1表示供应商
c_no as 合同号,
b.c_name as 客户名称,
c.c_name as 供应商名称
from
a,b as b,b as c
where
a.sid=c.c_id
and
a.cid=b.c_id
合同号,
客户名称=(select 客户供应商名称 from b where 客户供应商ID=A.客户名称),
供应商名称 =(select 客户供应商名称 from b where 客户供应商ID=A.供应商名称 )
from A
D.c_no
,E.c_name as '客户名称'
,F.c_name as '供应商名称'
from
a as D
join b as E on D.cid = E.c_id
join b as F on D.sid = F.c_id 两次连接
IF OBJECT_ID('b') IS NOT NULL
DROP TABLE b
GO
CREATE TABLE b(c_no varchar(20),cid varchar(20),sid varchar(20) )
go
insert b SELECT
'0001', '001', '002'
IF OBJECT_ID('c') IS NOT NULL
DROP TABLE c
GO
CREATE TABLE c(c_id varchar(20),c_name varchar(20),c_flag int)
go
insert c SELECT
'001' , '鸳鸯线业' , 0 union all select
'002' , '中天农业' , 1
select c_no as 合同号,b.c_name as 客户名称,c.c_name as 供应商名称 from b a
join c b on a.cid=b.c_id
join c c on a.sid=c.c_id合同号 客户名称 供应商名称
-------------------- -------------------- --------------------
0001 鸳鸯线业 中天农业(1 行受影响)
--感觉c_flag是多余
left join b on a.cid=b.c_id left join b as c on a.sid=c.c_id两次连接就可以了,第一次先查出客户的名称,第二次在查处供应商的名称
select a.c_no as 合同号,b.c_name as 客户名称,c.c_name as 供应商名称
from a inner join b on a.cid=b.c_id and b.flag=0?or 1? --不知道你flag0和1哪个代表客户哪个供应商自己填写下
inner join b as c on a.sid=b.c_id and b.flag= --
from a inner join b on a.cid=b.c_id and b.flag=0?or 1? --不知道你flag0和1哪个代表客户哪个供应商自己填写下
inner join b as c on a.sid=c.c_id and c.flag= --
之前写错了~