sql语句中关于join的一个问题

select
tsm.lang_context
from
t_s_muti_lang tsm
join
t_e_products tep
on
tsm.lang_key = tep.products_name
and
tsm.lang_code = 'en'
join
t_e_goods teg
on
tep.products_id = teg.products_id
where
teg.goods_id = 'asdasdasd123123'
想问一下,这是三个表的关联,这三个表的顺序有什么要求吗,
表AjoinB跟BjoinA有什么区别,还有第一个join的on后边的第二个条件
tsm.lang_key = tep.products_name放在where子句中也是可以的,有
什么区别,这些问题对效率有什么影响吗

2个回答

这个问题如果这个问题如果你做个实验会理解的更清晰,第一个问题第二个问题是可以一起回答:
Ajoin B 是以A表作为驱动表,A中的每一条记录都在B中寻找,找到匹配的,那么就显示出B中的信息,如果没找到B类的信息,那么该条记录对应的B记录就为空
不显示B中独有的信息 。 Bjoin A刚好相反。 其实Ajoin B可以理解成 select * from A,B where 条件
第3个问题: 涉及语句的执行顺序问题。 如果条件放到where 的化就是最后执行返回结果。如果放在on上面 就是按顺序执行。

cool0532
Baymax0532 感谢大神
3 年多之前 回复

问题描述:抓取程序的结果精度不够,导致入库的数据有的正确,有的错误,需要找出错误的数据.
抓取下来的数据有三个值,最高价,最低价和平均值.其中最高价和最低价由网页提供,平均值是自己算出来的,但是平均值被强制转换为了int类型,所以导致了精度的丧失.
思路分析:写SQL语句,进行判断,找出错误的数据.
表内容截图:

--mValue是存储数据的列
--当indiccode2=792......
答案就在这里:一个关于JOIN的SQL语句
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问