तो मेरे पास मेरे डीबी पर चलाने के लिए यह छोटी सी क्वेरी है और यह MySQL वर्कबेंच में ठीक काम करता है। मूल रूप से, बाएं जॉइन के साथ एक चयन और बाएं जॉइन के साथ यूनियन।लार्वेल 5.1 के साथ कच्चे प्रश्नों को निष्पादित करने के लिए कैसे?
SELECT
cards.id_card,
cards.hash_card,
cards.`table`,
users.name,
0 as total,
cards.card_status,
cards.created_at
FROM cards
LEFT JOIN users
ON users.id_user = cards.id_user
WHERE hash_card NOT IN (SELECT orders.hash_card FROM orders)
UNION
SELECT
cards.id_card,
orders.hash_card,
cards.`table`,
users.name,
sum(orders.quantity*orders.product_price) as total,
cards.card_status,
max(orders.created_at)
FROM menu.orders
LEFT JOIN cards
ON cards.hash_card = orders.hash_card
LEFT JOIN users
ON users.id_user = cards.id_user
GROUP BY hash_card
ORDER BY id_card ASC
इसे बिना किसी सफलता के लैरवेल में अनुवाद करने की कोशिश की गई।
$cards = Card::selectRaw('cards.id_card, cards.hash_card ,cards.table, users.name, 0 as total, cards.card_status, cards.created_at as last_update')
->leftJoin('users','users.id_user','=','cards.id_user')
->whereNotIn('hash_card', Order::select('orders.hash_card')->get())
->union(
Order::selectRaw('cards.id_card, orders.hash_card, cards.table, users.name, sum(orders.quantity*orders.product_price) as total, cards.card_status, max(orders.created_at) as last_update')
->leftJoin('cards','cards.hash_card','=','orders.hash_card')
->leftJoin('users','users.id_user','=','cards.id_user')
)
->groupBy('hash_card')
->orderBy('cards.id_card','asc')
->get();
मैं त्रुटि मिल रही है
Builder.php में ErrorException लाइन 1249: अपरिभाषित संपत्ति: रोशन \ डाटाबेस \ सुवक्ता \ बिल्डर :: $ बाइंडिंग
कैसे कर सकते थे मैं लार्वेल में पूरी तरह कच्ची क्वेरी निष्पादित करता हूं या लारवेल में सही तरीके से क्वेरी लिखता हूं?
आप वास्तव में भी डीबी :: कच्चे कॉल घोंसला की जरूरत नहीं है। आप बस डीबी :: चयन ("... अपनी क्वेरी स्ट्रिंग ...") को कॉल कर सकते हैं; –
आप सही हैं! मैं घोंसला डीबी हटा देता हूं: कच्चा और यह एक आकर्षण की तरह काम करता है! ;) –
मेरे पास एक प्रश्न है यदि मैं कर सकता हूं। लार्वेल 5 (5.3 सटीक होने के लिए) में क्वेरी बिल्डर (डीबी :: कच्चे के साथ) के माध्यम से कच्चे एसक्यूएल प्रश्नों का उपयोग एसक्यूएल इंजेक्शन को रोकने के लिए पर्याप्त है? मुझे इसके बारे में कुछ लेख मिला है लेकिन यह लैरावेल 4 के लिए है। मुझे एक दृढ़ पुष्टि नहीं मिल रही है। – Robert