के साथ जुड़ें अनुसंधान के घंटों के ठीक बाद और अभी भी डीबी :: चयन का चयन करने के बाद मुझे यह प्रश्न पूछना है। क्योंकि मैं अपने कंप्यूटर को दूर करने वाला हूं;)।लैरवेल फ्लुएंट क्वेरी बिल्डर सबक्वायरी
मैं उपयोगकर्ता का अंतिम इनपुट (टाइमस्टैम्प पर आधार) प्राप्त करना चाहता हूं। मैं कच्चे एसक्यूएल
SELECT c.*, p.*
FROM users c INNER JOIN
(
SELECT user_id,
MAX(created_at) MaxDate
FROM `catch-text`
GROUP BY user_id
) MaxDates ON c.id = MaxDates.user_id INNER JOIN
`catch-text` p ON MaxDates.user_id = p.user_id
AND MaxDates.MaxDate = p.created_at
मैं stackoverflow पर एक और पोस्ट here से इस क्वेरी मिल गया के साथ ऐसा कर सकते हैं।
मैंने लैरवेल में धाराप्रवाह क्वेरी निर्माता के साथ ऐसा करने की कोशिश की है, हालांकि कोई सफलता नहीं है।
मुझे पता पुस्तिका का कहना है कि आप यह कर सकते हैं:
DB::table('users')
->join('contacts', function($join)
{
$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
})
->get();
लेकिन वह ज्यादा मदद नहीं कर रहा है, क्योंकि मैं कैसे मैं एक सबक्वेरी वहाँ इस्तेमाल कर सकते हैं नहीं दिख रहा है? कोई भी जो मेरे दिन को उजागर कर सकता है?
में उप क्वेरी के साथ क्वेरी इस पैकेज माना जाता है प्रश्न बनाने के लिए एक PHP उपकरण सेट प्रदान करने के लिए, फिर भी हमें क्वेरी लिखना होगा और इसे 'selectRaw' कथन द्वारा इंजेक्ट करना होगा! क्या आपके पास क्वेरी स्ट्रिंग के बजाय क्वेरी पर धाराप्रवाह क्वेरी ऑब्जेक्ट पास करने के लिए कोई भाग्य है? – HPM
यदि आपके पास उप-चयन में पैरामीटर है तो यह असंभव हो जाता है - उदाहरण के लिए @ ph4r05 उत्तर देखें, लेकिन मुझे यकीन नहीं है कि यह उन बदसूरत से SQL और addBinding से बचने के लिए सरलीकृत किया जा सकता है या नहीं – JustAMartin