Ich habe die folgende Anfrage
"""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" }
Ich habe es versucht LEFT OUTER JOIN %(t2)s t2alias ON t2alias.id = ...
aber ohne Erfolg Stattdessen bekomme ich eine 1054, "Unknown column
. Was vermisse ich?
Danke
Antworten:
1 für die Antwort № 1Ich glaube, ich sehe dein Problem:
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
Versuchen Sie, die , %(t2)s
von dem FROM
Linie; es ist genug, um es in der LEFT OUTER JOIN
.
1 für die Antwort № 2
Du hast table2 LEFT OUTER JOIN table2
. Ich denke, du willst nur tun:
FROM %(t1)s,
LEFT OUTER JOIN %(t2)s
Ich denke auch, dass es eine seltsame Praxis ist, die Tabellennamen in der Abfrage nicht anzugeben. Wenn sie sich häufig ändern, würde dies der Fall sein ebenfalls sei mir komisch.