2014-06-04 4 views
5

में तालिका में विवादित कॉलम शीर्षक से बचने के लिए मैं एक mysql डेटाबेस के साथ peewee में दो तालिकाओं में शामिल होने का प्रयास कर रहा हूं।पेवी

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

दुर्भाग्य से, मैं Table1 और तालिका 2 एक ही बात, "URL" में एक स्तंभ कहा जाता है: यह बहुत आसान कुछ इस तरह कर रही है। फिर जब मैं s.URL का चयन करता हूं तो यह मुझे टेबल 2 से यूआरएल देता है, जो मैं नहीं चाहता, मैं टेबल 1 से एक चाहता हूं। क्या Table2.URL कॉलम में शामिल होने या इसे कुछ अलग करने के लिए कोई तरीका नहीं है? This question नियमित एसक्यूएल (पेवी नहीं) में एक समान समस्या को संबोधित कर रहा है, क्या पेवी में समान कुछ करने का कोई तरीका है?

दूसरे शब्दों में, मुझे लगता है कि मैं या तो "JOIN AS" विधि या "DON'T JOIN THIS COLUMN" विधि को पेवी में ढूंढ रहा हूं।

धन्यवाद एक बहुत, एलेक्स

उत्तर

6

मैं peewee उपयोग नहीं किया है, लेकिन डॉक्स किसी भी तालिका, अभिव्यक्ति, या स्तंभ एक .alias() विधि है कि सुझाव देते हैं। लेकिन इसका मतलब है कि आप व्यक्तिगत रूप से URL कॉलम अन्य नाम पर होगा:

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

यहां तक ​​कि हाथ से तैयार किए एसक्यूएल में, आप SELECT Table2.* नहीं लेकिन एक साथ एक उपनाम तालिका 2 के स्तंभों में से एक के लिए दे सकते हैं।

+0

धन्यवाद! ऐसा लगता है कि काम करता है। –