2011-08-28 16 views

उत्तर

39

यह मानते हुए कि क्या आपका मतलब है "तालिका 2 से एक कॉलम चुनना":

SELECT table1.*, table2.first_name 
    FROM table1 
LEFT JOIN table2 
... 
+0

बिल्कुल स्पष्ट रूप से निर्दिष्ट किया जाना चाहिए। और, अब तक कोई भी उल्लेख नहीं किया गया है, स्पष्ट बेहतर हन अंतर्निहित है; केवल "सभी" – glglgl

+0

ग्रेट कहने के बजाय वांछित कॉलम सूचीबद्ध करना बेहतर है, यह वही है जो मैं चाहता था, बहुत धन्यवाद NullUserException :) –

1

आप अपने पहले ही कहा गया प्रश्न के अतिरिक्त मतलब है:

SELECT * FROM table1 
LEFT JOIN table2 
ON table1.id = table2.table1_id 
WHERE table1.id = 1 and table1.first_name = table2.first_name 
+0

नहीं, यह मेरा मतलब नहीं है, तालिका 1 में कोई पहला_नाम नहीं है, मुझे बस चाहिए table2 से first_name। आपके उत्तर के लिए धन्यवाद :) –

0

स्वीकार किए जाते हैं जवाब सही जवाब है लेकिन जब टेबल दो अलग-अलग डेटाबेस में होते हैं तो मुझे एक अजीब त्रुटि आई है:

मान लें कि तालिका 1 है डेटाबेस 1 और table2 डेटाबेस 2 में है। शुरू में मैं इस की कोशिश की है:

SELECT *, database2.table2.first_name FROM table1 
LEFT JOIN database2.table2 
ON database1.table1.id = database2.table2.table1_id 
WHERE table1.id = 1 

अजीब बात यह है कि अगर मैं PHP पीडीओ से इस क्वेरी की कोशिश कोई त्रुटि नहीं थे, लेकिन परिणाम database2.table2 से सभी स्तंभों निहित (केवल first_name स्तंभ की उम्मीद है)।

लेकिन अगर मैं कोशिश की है phpmyadmin से एक ही क्वेरी एक sintax त्रुटि मिली:

टेबल 'database2.table1' मौजूद नहीं है

तो, के लिए हल है कि, तो सभी डेटाबेस की जरूरत है इस:

SELECT database1.table1.*, database2.table2.first_name FROM database1.table1 
LEFT JOIN database2.table2 
ON database1.table1.id = database2.table2.table1_id 
WHERE database1.table1.id = 1 
संबंधित मुद्दे