我有以下查询
'''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
答案 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
。