我很难加入多个桌子。我可以获得2的加入,但当我试图加入这三种方法时,会出现一个错误:
这工作:
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 及其工作:
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,但是当我试图像这样把它们放在一起时:
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 10I得到错误: Not唯一表/别名:'caprange‘
发布于 2015-03-02 22:51:54
不确定你是否打算两次加入caprange。如果是这样,您可以使用别名指向正确的表。查询可以重写为:
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替换为正确的别名。
https://stackoverflow.com/questions/28820101
复制相似问题