首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL左联接3表错误

MySQL左联接3表错误
EN

Stack Overflow用户
提问于 2015-03-02 21:49:43
回答 1查看 24关注 0票数 0

我很难加入多个桌子。我可以获得2的加入,但当我试图加入这三种方法时,会出现一个错误:

这工作:

代码语言:javascript
复制
SELECT `capman`.`cman_code`, `capman`.`cman_name`, `caprange`.`cran_name`, `caprange`.`cran_mantextcode` 

from capman, caprange 

LEFT JOIN `capder` ON `caprange`.`cran_code` = `capder`.`cder_rancode` 

AND `capder`.`cder_discontinued` = '0000-00-00 00:00:00' 
LIMIT 10 

及其工作:

代码语言:javascript
复制
SELECT `capman`.`cman_code`, `capman`.`cman_name`, `caprange`.`cran_name`, `caprange`.`cran_mantextcode`

from capman

LEFT JOIN `caprange` ON `caprange`.`cran_mantextcode` = `capman`.`cman_code` WHERE LCASE(cman_name) IN ('arbarth','alfa romeo','aston')
LIMIT 10

,但是当我试图像这样把它们放在一起时:

代码语言:javascript
复制
SELECT `capman`.`cman_code`, `capman`.`cman_name`, `caprange`.`cran_name`, `caprange`.`cran_mantextcode`

from capman, caprange 

LEFT JOIN `caprange` ON `caprange`.`cran_mantextcode` = `capman`.`cman_code` WHERE LCASE(cman_name) IN ('arbarth','alfa romeo','aston')

LEFT JOIN `capder` ON `caprange`.`cran_code` = `capder`.`cder_rancode` AND `capder`.`cder_discontinued` = '0000-00-00 00:00:00'

LIMIT 10

I得到错误: Not唯一表/别名:'caprange‘

EN

回答 1

Stack Overflow用户

发布于 2015-03-02 22:51:54

不确定你是否打算两次加入caprange。如果是这样,您可以使用别名指向正确的表。查询可以重写为:

代码语言:javascript
复制
SELECT `capman`.`cman_code`, `capman`.`cman_name`, `caprange`.`cran_name`, `caprange`.`cran_mantextcode`
from capman, caprange r1 
LEFT JOIN `caprange` r2 ON r2.`cran_mantextcode` = `capman`.`cman_code` WHERE LCASE(cman_name) IN ('arbarth','alfa romeo','aston')
LEFT JOIN `capder` ON r1.`cran_code` = `capder`.`cder_rancode` AND `capder`.`cder_discontinued` = '0000-00-00 00:00:00'
LIMIT 10

由于我不确定您要使用caprange连接哪个表,所以将查询中的r1/r2替换为正确的别名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28820101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档