1066,“不唯一的表/别名 - mysql查询

时间:2013-05-14 20:47:27

标签: python mysql join

我有以下查询

'''SELECT %(t1)s.*, %(t2)s.id, %(t2)s.street 
   FROM %(t1)s, %(t2)s 
   LEFT OUTER JOIN %(t2)s 
   ON %(t2)s.id = %(t1)s.location_id 
''' % { 't1' : 'table1', 't2' : 'table2' }

我尝试使用LEFT OUTER JOIN %(t2)s t2alias ON t2alias.id = ...,但无济于事。相反,我得到1054, "Unknown column。我错过了什么?

THX

2 个答案:

答案 0 :(得分:1)

你有table2 LEFT OUTER JOIN table2。我想你只是想做:

FROM %(t1)s,
LEFT OUTER JOIN %(t2)s

我还认为不在查询中指定表名是一种奇怪的做法。如果他们频繁更改,对我来说很奇怪。

答案 1 :(得分:1)

我想我看到了你的问题:

SELECT %(t1)s.*, %(t2)s.id, %(t2)s.street
FROM %(t1)s, %(t2)s 
             ^^^^^^ Already declared in the LEFT OUTER JOIN
LEFT OUTER JOIN %(t2)s
ON %(t2)s.id = %(t1)s.location_id

尝试从, %(t2)s行中删除FROM;它足以让它出现在LEFT OUTER JOIN