मैं निम्नलिखित दो तालिकाओं:पीडीओ ऑटो-एलियासिंग लाने पर?
foo:
ID NUMBER(38)
DATA VARCHAR2(10)
बार:
ID NUMBER(38)
FOO_ID NUMBER(38)
DATA VARCHAR2(10)
जब PDO
का उपयोग कर निम्न क्वेरी जारी करने के लिए:
SELECT * FROM foo f INNER JOIN bar b ON (f.id = b.foo_id)
किसी प्रकार के ऑटो-एलाइज्ड प्रारूप में शामिल होने से कॉलम के सभी वापस पाने का कोई तरीका है (उदा। "FOO.ID", "FOO.DATA", "BAR.ID", आदि) ताकि मुझे क्वेरी में प्रत्येक कॉलम निर्दिष्ट करने और उपनाम करने की आवश्यकता न हो?
मैंने विभिन्न fetch modes पर सभी दस्तावेज पढ़ लिए हैं, और flags/options के साथ प्रयोग किया है, लेकिन फिर भी मुझे लगता है कि मैं क्या ढूंढ रहा हूं।
अपडेट:, दोनों foo
और bar
से कॉलम प्रदर्शित
array(3) {
["ID"]=>
string(1) "1"
["DATA"]=>
string(5) "bar 1"
["FOO_ID"]=>
string(1) "1"
}
PDO::FETCH_NUM
का उपयोग करना:
PDO::FETCH_ASSOC
का उपयोग करना, foo
से कॉलम bar
से कॉलम द्वारा ओवरराइट हो रहे हैं , क्रम में, लेकिन किसी भी तरीके से पहचानने के लिए कि कौन से कॉलम आयाम को छोड़कर, कौन से कॉलम से आया था उन स्तंभों में से प्रत्येक मेज और सटीक क्रम (त्रुटि प्रवण) में स्तंभों की एर:
array(5) {
[0]=>
string(1) "1"
[1]=>
string(5) "foo 1"
[2]=>
string(1) "1"
[3]=>
string(1) "1"
[4]=>
string(5) "bar 1"
}
PDO::FETCH_BOTH
का उपयोग करना, हम उचित रूप में PDO::FETCH_ASSOC
और PDO::FETCH_NUM
संयुक्त रूप में एक ही समस्याओं में चलाने के लिए, और एक बुरी तरह अस्पष्ट परिणाम सेट बनाने के लिए:
array(8) {
["ID"]=>
string(1) "1"
[0]=>
string(1) "1"
["DATA"]=>
string(5) "bar 1"
[1]=>
string(5) "foo 1"
[2]=>
string(1) "1"
["FOO_ID"]=>
string(1) "1"
[3]=>
string(1) "1"
[4]=>
string(5) "bar 1"
}
आदर्श रूप में, परिणाम सेट इस के समान दिखना चाहिए:
array(5) {
["FOO.ID"]=>
string(1) "1"
["FOO.DATA"]=>
string(5) "foo 1"
["BAR.ID"]=>
string(1) "1"
["BAR.FOO_ID"]=>
string(1) "1"
["BAR.DATA"]=>
string(5) "bar 1"
}
आप हमेशा अपने योग्य नाम 'tableName.columnName' के साथ एक कॉलम देख सकते हैं, यदि यह है, तो आपका क्या मतलब है (हालांकि यह उपनाम नहीं है)। – KingCrunch
वैसे भी 'चयन *' के बजाय चुनिंदा प्रश्नों में कॉलम को स्पष्ट रूप से सूचीबद्ध करने के लिए एक अच्छी आदत है ... –
@ माइकल बर्ककोस्की: दुर्भाग्यवश, मेरे पास इस उदाहरण में वह लक्जरी नहीं है। – FtDRbwLXw6