मेरे पास दो टेबल हैं।mysql क्वेरी दो टेबल, यूनियन और जहां खंड
मैं इस तरह क्वेरी:
SELECT * FROM (
Select requester_name,receiver_name from poem_authors_follow_requests as one
UNION
Select requester_name,receiver_name from poem_authors_friend_requests as two
) as u
where (LOWER(requester_name)=LOWER('user1') or LOWER(receiver_name)=LOWER('user1'))
मैं यूनिअन उपयोग कर रहा हूँ क्योंकि मैं प्रत्येक उपयोगकर्ता के लिए अलग-अलग मान प्राप्त करना चाहते हैं एक उपयोगकर्ता पहले तालिका में और दूसरे में मौजूद रहने पर।
उदाहरण के लिए:
table1
nameofuser
peter
table2
nameofuser
peter
अगर पीटर या तो मेज पर है मैं क्योंकि यह दोनों टेबल पर मौजूद नाम एक बार मिलना चाहिए।
फिर भी मुझे पहली तालिका से एक पंक्ति और तालिका संख्या दो से एक पंक्ति मिलती है। गलत क्या है?
किसी भी मदद की सराहना की।
एक ही समय के अपने टेबल के दोनों में स्तंभ हैं:
where (LOWER(u.requester_name) = ...
इस उत्तर आप में देख सकते हैं करने के लिए simlar है? हो सकता है कि एक तालिका में कॉलम प्रकार 'char'and प्रकार के प्रकार में है' वर्चर 'मुझे कुछ जगहें मिल सकती हैं .... –
nop वे दोनों एक ही प्रकार के फ़ील्ड हैं – stefanosn
अपने कथन में, शायद आप चाहते हैं प्रत्येक फ़ील्ड से पहले "यू" को संदर्भित करने के लिए ... तो 'जहां (लोअर (u.requester_name) = ...' यह उस उत्तर के समान है जो आप देख सकते हैं: http://stackoverflow.com/questions/5452233/ जहां-स्टेटमेंट-ए-यूनियन-इन-एसक्यूएल –