如何运行有关innerjoin的sql查询
我已从我的表中编写了上述代码,但未运行其显示错误: 味精102,第15级,状态1,第2行如何运行有关innerjoin的sql查询,sql,inner-join,Sql,Inner Join,我已从我的表中编写了上述代码,但未运行其显示错误: 味精102,第15级,状态1,第2行 “bk_分支”附近的语法不正确 请帮忙 您需要通过,s在选择中分隔字段。联接本身在语法上看起来正常 select rm_id as 'ID' bk_branch as 'BRANCH' br_name as 'BANK REP.' bs_name as 'ESCORT' dt_rep as 'DATE' rep_time as
“bk_分支”附近的语法不正确
请帮忙 您需要通过
,
s在选择中分隔字段。联接本身在语法上看起来正常
select rm_id as 'ID'
bk_branch as 'BRANCH'
br_name as 'BANK REP.'
bs_name as 'ESCORT'
dt_rep as 'DATE'
rep_time as 'TIME'
amt
inv_no
total_box
box_no
note_state
dm_state
1
2
10
20
50
100
500
1000
tp
tv
tp_ex1
tv_ex1
tp_m
tv_m
from bk_det
inner join bk_rep
on bk_det.rm_id = bk_rep.rm_id
inner join bk_sec
on bk_rep.rm_id = bk_sec.rm_id
inner join mut_det
on bk_sec.rm_id = mut_det.rm_id
inner join rm_det
on mut_det.rm_id = rm_det.rm_id
inner join soil_det
on rm_det.rm_id = soil_det.rm_id
只需给列赋予表别名,否则会产生歧义
select rm_id as 'ID'
,bk_branch as 'BRANCH'
,br_name as 'BANK REP.'
,bs_name as 'ESCORT'
,dt_rep as 'DATE'
,rep_time as 'TIME'
,amt
,inv_no
,total_box
,box_no
,note_state
,dm_state
,1
,2
,10
,20
,50
,100
,500
,1000
,tp
,tv
,tp_ex1
,tv_ex1
,tp_m
,tv_m
from bk_det
...
您需要在选择的每一列后面都有逗号,
!!语法检查器在第一个错误时停止,这有点令人困惑。当然,有很多错误,看到这些可能会帮助您识别模式。诊断此问题的一种方法可能是删除连接。您对一个表的选择将不起作用。从一个简单的SQL语句开始,只在它工作时添加到它。然后,当它中断时,您知道问题所在。除了逗号之外,您还应该养成在每个列引用之前放置别名的习惯<代码>rm_id
对于一个是不明确的,因此它将生成一个错误。您需要类似于bk_det.rm_id
.Msg 209,16级,状态1,第1行不明确的列名“rm_id”。Msg 209,16级,状态1,第5行不明确的列名“dt_rep”。Msg 209,16级,状态1,第6行不明确的列名“rep_time”。它再次显示上述错误@user1904521-不同的错误。您选择的列的名称出现在多个表中。您需要使用希望从-
.Msg 209,级别16,状态1,第1行中选择的表名限定这些列不明确的列名“rm_id”。Msg 209,16级,状态1,第5行不明确的列名“dt_rep”。Msg 209,16级,状态1,第6行不明确的列名“rep_time”。现在它正在显示上述错误@用户1904521-是。这基本上是同一个问题。您不能阅读错误消息并理解它的含义吗?它会告诉你问题是什么,甚至告诉你问题出在哪一列。
select a.rm_id as 'ID',
bk_branch as 'BRANCH',
br_name as 'BANK REP.',
bs_name as 'ESCORT',
dt_rep as 'DATE',
rep_time as 'TIME',
amt,
inv_no,
total_box,
box_no,
note_state,
dm_state,
1 ,
2,
10,
20,
50,
100,
500,
1000,
tp,
tv,
tp_ex1,
tv_ex1,
tp_m,
tv_m,
from bk_det a
inner join bk_rep b
on a.rm_id = b.rm_id
inner join bk_sec c
on b.rm_id = c.rm_id
inner join mut_det d
on c.rm_id = d.rm_id
inner join rm_det e
on d.rm_id = e.rm_id
inner join soil_det f
on e.rm_id = f.rm_id;