mysql报错Error Code: 1054. Unknown column 't1.id' in 'on clause'
select t1.*,(select `key` from recommend r inner join recommend_ref_news rrn on r.id=rrn.recommend_id and rrn.news_id=t1.id) as recommend from news t1原因:个人猜测,括号里的子查询是先执行的,所以没有t1,不知道为什么mysql要先执行子查...
·
select t1.*,(select `key` from recommend r inner join recommend_ref_news rrn on r.id=rrn.recommend_id and rrn.news_id=t1.id) as recommend from news t1
原因:个人猜测,括号里的子查询是先执行的,所以没有t1,
不知道为什么mysql要先执行子查询,个人感觉这是很脑残的,按道理这样的sql语句是一个很普通不应该报错的,在oracle下运行是完全没有问题的。
既然,前面t1.*,能拿到t1,为什么在后面的子查询居然还拿不到t1了???
解决办法:将on里的and rrn.news_id=t1.id挪到where里就行了,正确代码如下:
select t1.*,(select `key` from recommend r inner join recommend_ref_news rrn on r.id=rrn.recommend_id where rrn.news_id=t1.id) as recommend from news t1
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献8条内容
所有评论(0)