php - MySQL - join elements from another table with limit 1 -


मेरे पास यह तालिका है page_base जहां मैं position = 1 page_base_images पर पेज_बेस .id = page_base_images.page_base_id नामक अन्य तालिका से।

पृष्ठ_बेस [तालिका]

  + ---- + --------- + ------ ------ + | आईडी | मेनू_आईडी | सबमेनू_आईडी | + ---- + --------- + ------------ + | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | + ---- + --------- + ------------ +  

पृष्ठ_बेस_इम्स [तालिका]

  + ---- + -------------- + ------------ + ----- ----- + -------- + | आईडी | पेज_बेस_आईडी | छवि | स्थिति | सक्रिय | + ---- + -------------- + ------------ + ---------- + ----- --- + | 1 | 1 | 01_001.jpg | 1 | 1 | | 2 | 1 | 01_002.jpg | 2 | 1 | | 3 | 1 | 01_003.jpg | 3 | 1 | | 4 | 1 | 01_004.jpg | 4 | 1 | | 5 | 1 | 01_005.jpg | 5 | 1 | | 6 | 1 | 01_006.jpg | 6 | 1 | | 7 | 1 | 01_007.jpg | 7 | 1 | | 8 | 1 | 01_008.jpg | 8 | 1 | | 9 | 1 | 01_009.jpg | 9 | 1 | | 10 | 1 | 01_010.jpg | 10 | 1 | | 11 | 3 | 03_001.jpg | 1 | 1 | | 12 | 3 | 03_002.jpg | 2 | 1 | | 13 | 3 | 03_003.jpg | 3 | 1 | + ---- + -------------- + ------------ + ---------- + ----- --- +  

वांछित सरणी परिणाम

  + ---------- + --- ----------- + ---------- + ---------- + ------------- + - ---------- + | सरणी_आईडी | पेज_बेस_आईडी | शीर्षक | उपशीर्षक | विवरण | छवि | + ---------- + -------------- + ---------- + ---------- + - ------------ + ------------ + | 0 | 1 | * स्ट्रिंग * | * स्ट्रिंग * | * स्ट्रिंग * | 01_001.jpg | | 1 | 3 | * स्ट्रिंग * | * स्ट्रिंग * | * स्ट्रिंग * | 03_001.jpg | + ---------- + -------------- + ---------- + ---------- + - ------------ + ------------ +  

अभी तक मेरे पास यह है लेकिन यह हमेशा के साथ छवि को जोड़ रहा है id = 1 और अगर मैंने एक WHERE क्लॉज डाल दिया है तो यह मुझे त्रुटि देता है

  $ page_base_table = get_raw_query ( "base_lang.title, base_lang.subtitle, base_lang.description, base_image.image से page_base आधार वाम बाहरी शामिल हों का चयन page_base_languages ​​base_lang पर base.id = base_lang.page_base_id वाम बाहरी शामिल हों base_image पर base.id = base_image.page_base_id कहां base_lang.title की तरह '% $ स्ट्रिंग%' ") (image.page_base_id, image.image से page_base_images छवि सीमा 1 का चयन करें);  

क्या कोई मुझे पेज_बेस_इम्स को सीमित करने में सहायता कर सकता है और position = 1 ?

आप page_base_images यानी ON (base.id = base_image) में शामिल होने में अतिरिक्त शर्त जोड़कर अपनी क्वेरी को नीचे दोहरा सकते हैं। page_base_id और base_image.position = 1)

  का चयन करें base_lang.title, base_lang.subtitle, base_lang.description, से page_base आधार वाम बाहरी base_image.image शामिल हों page_base_languages ​​base.id पर base_lang = base_lang.page_base_id वाम बाहरी शामिल हों page_base_images के रूप में base_image पर (base.id = base_image.page_base_id और base_image.position = 1) कहां base_lang.title की तरह '% $ स्ट्रिंग%'  

संपादित करें उन छवियों को प्राप्त करने के लिए जिनमें न्यूनतम स्थिति है

  SELECT base_lang.title, base_lang.subtitle, base_lang.description, base_image.image से पृष्ठ_बेस बेस LEFT OUTER JOIN पेज_बेस_अभियान base_id पर बेस.लिड बेस = lang.page_base_id LEFT OUTER JOIN (SELECT page_base_id, image, MIN (`स्थिति`) से page_base_images GROUP BY page_base_id) as base_image ON (base.id = base_image.page_base_id) WHERE base_lang.title LIKE '% $ स्ट्रिंग%  

Comments