Avoiding conflicting column titles in table join in peewee

房东的猫 提交于 2019-12-12 11:18:18

问题


I'm trying to join two tables in peewee with a mysql database. This is pretty easy doing something like this:

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

Unfortunately, I have called a column in Table1 and Table2 the same thing, "URL". Then when I select s.URL it gives me the URL from Table2, which I don't want, I want the one from Table1. Is there some way to either not join the Table2.URL column or to name it something different? This question seems to be addressing a similar problem in regular SQL (not peewee), is there a way to do something similar in peewee?

In other words, I think I'm looking for either a "JOIN AS" method or a "DON'T JOIN THIS COLUMN" method in peewee.

Thanks a lot, Alex


回答1:


I haven't used peewee, but the docs suggest that any table, expression, or column has a .alias() method. But that means you'd have to alias the URL column individually:

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

Even in hand-crafted SQL, you can't SELECT Table2.* but simultaneously give an alias for one of the columns of Table2.



来源:https://stackoverflow.com/questions/24048298/avoiding-conflicting-column-titles-in-table-join-in-peewee

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!