मैंने बाईं ओर केवल पहली पंक्ति प्राप्त करने के बारे में कई सूत्र पढ़े, लेकिन, किसी कारण से, यह मेरे लिए काम नहीं करता है।
यहाँ मेरी संरचना है (पाठ्यक्रम का सरलीकृत)
फ़ीड
id | title | content
----------------------
1 | Feed 1 | ...
कलाकार की
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2
feeds_artists
rel_id | artist_id | feed_id
----------------------------
1 | 1 | 1
2 | 2 | 1
...
अब मैं लेखों को प्राप्त करना चाहता हूं और केवल पहले कलाकार से जुड़ना चाहता हूं और मैंने कुछ इस तरह से सोचा:
SELECT *
FROM feeds
LEFT JOIN feeds_artists ON wp_feeds.id = (
SELECT feeds_artists.feed_id FROM feeds_artists
WHERE feeds_artists.feed_id = feeds.id
LIMIT 1
)
WHERE feeds.id = '13815'
केवल फीड्स_आर्टिस्ट की केवल पहली पंक्ति प्राप्त करने के लिए, लेकिन पहले से ही यह काम नहीं करता है।
मैं TOP
अपने डेटाबेस के कारण उपयोग नहीं कर सकता और मैं परिणाम को समूह में नहीं रख सकता feeds_artists.artist_id
क्योंकि मुझे उन्हें तिथि के अनुसार क्रमबद्ध करने की आवश्यकता है (मुझे उन्हें इस प्रकार समूहित करके परिणाम मिले, लेकिन परिणाम जहां नवीनतम नहीं हैं)
OUTER APPLY के साथ भी कुछ करने की कोशिश की - कोई सफलता भी नहीं मिली। सच कहूं तो मैं वास्तव में उन पंक्तियों में क्या चल रहा है इसकी कल्पना नहीं कर सकता हूं - शायद सबसे बड़ा कारण है कि मुझे यह काम करने के लिए नहीं मिलता है।
उपाय:
SELECT *
FROM feeds f
LEFT JOIN artists a ON a.artist_id = (
SELECT artist_id
FROM feeds_artists fa
WHERE fa.feed_id = f.id
LIMIT 1
)
WHERE f.id = '13815'