2014-06-04 14 views
5

Sto provando ad unire due tabelle in peewee con un database mysql. Questo è abbastanza facile fare qualcosa di simile:Evitare titoli di colonne in conflitto in join tabella in peewee

s = Table1.select(Table1, Table2).join(
     Table2).naive().where(Table1.Title == "whatever") 

Purtroppo, ho chiamato una colonna in Table1 e Table2 la stessa cosa, "URL". Quindi quando seleziono s.URL mi da l'URL di Table2, che non voglio, voglio quello di Table1. C'è un modo per non unire la colonna Table2.URL o per denominarla qualcosa di diverso? This question sembra affrontare un problema simile in SQL regolare (non peewee), c'è un modo per fare qualcosa di simile in peewee?

In altre parole, penso che sto cercando un metodo "JOIN AS" o un metodo "DON'T JOIN THIS COLUMN" in peewee.

Grazie mille, Alex

risposta

6

non ho usato Peewee, ma i documenti indicano che qualsiasi tavolo, espressione, o una colonna ha un metodo .alias(). Ma questo significa che avrebbe dovuto alias colonna URL singolarmente:

Table1.select(Table1, Table2.URL.alias('t2_url')).join(Table2)... 

Anche in SQL artigianale, non si può SELECT Table2.*, ma allo stesso tempo dare un alias per una delle colonne di Table2.

+0

Grazie! Sembra funzionare. –