0

我有以下查询

'''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. 我错过了什么?

谢谢

4

2 回答 2

1

你有table2 LEFT OUTER JOIN table2. 我想你只是想这样做:

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

我还认为不在查询中指定表名是一种奇怪的做法。如果他们经常更换,那对我来说也会很奇怪。

于 2013-05-14T20:53:16.797 回答
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)sFROM行中删除;把它放在里面就足够了LEFT OUTER JOIN

于 2013-05-14T20:53:49.410 回答