Ich habe eine Menge Probleme beim Konvertieren der folgenden SQL-Abfrage, um mit Larawels Query Builder zu arbeiten.Verwenden mehrerer where-Klauseln mit Laravel Query Builder
SELECT * FROM gifts
JOIN giftcategory ON gifts.id = giftcategory.giftid
JOIN giftoccasions ON gifts.id = giftoccasions.giftid
JOIN giftrelationship ON gifts.id = giftrelationship.giftid
WHERE (gifts.gender = 'any' OR gifts.gender = 'male')
AND giftoccasions.occasionid = '2'
AND (giftcategory.categoryid = '0' OR giftcategory.categoryid = '1')
AND giftrelationship.relationshipid = '1'
Diese Abfrage funktioniert gut, aber ich kann nicht die gleichen Ergebnisse erhalten, wenn Larawels Query Builder verwendet. Ich habe den folgenden Code bisher. Es funktioniert überhaupt nicht richtig. Ich denke, dass das Problem mit dem orWhere Teil liegen könnte, weil es scheint, Ergebnisse zurückzugeben, die keiner der anderen where-Klauseln entsprechen.
$giftQuery = DB::Table('gifts')
->Join('giftcategory', 'gifts.id', '=', 'giftcategory.giftid')
->Join('giftoccasions', 'gifts.id', '=', 'giftoccasions.giftid')
->where('gifts.gender', '=', "male")
->orwhere('gifts.gender', '=', "any")
->where('giftoccasions.occasionid', '=', "2")
->where('giftoccasions.relationshipid', '=', "1")
->Where('giftcategory.categoryid', '=', "0")
->orWhere('giftcategory.categoryid', '=', "1");
, wenn Sie mit meiner Antwort unten zufrieden sind, können Sie es akzeptieren :) –