我有查询
select gltree.*,tsacc.confirm,tsacc.acc_no,commacc.* from tsacc
inner join commacc on tsacc.acc_no = commacc.acc_no and tsacc.glcode = commacc.glcode
inner join gltree on tsacc.glcode = gltree.glcode
where gltree.glcode = 12738
在此查询中,两个指定的表具有' glcode' 列名称, so 为什么我应该在where子句中指定表名,例如。 gltree.glcode 并且不能只使用没有表名的glcode?因为我们在执行查询中只有一个glcode? p>
答案 0 :(得分:1)
您实际上有三个列具有该名称(tsacc.glcode
,commacc.glcode
和gltree.glcode
),因此您需要告诉数据库您的意思。
选择列表中的列列表将作为处理语句的最后一步进行评估。因此,当DB处理where子句时,它不会知道"你实际上使用了哪些(你可以使用它们)。
Plus:使用内连接确实无关紧要,但如果你使用外连接,那么在where子句中使用这三列中的哪一列会产生很大的不同。