我在转换以下SQL查询以使用laravels查询构建器时遇到了很多麻烦.
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'
此查询工作正常,但在使用Laravels查询构建器时,我无法获得相同的结果.到目前为止,我有以下代码.它根本不能正常工作.我认为问题可能在于orWhere部分,因为它似乎返回的结果与其他where子句不匹配.
$giftQuery = DB::Table('gifts')
->Join('giftcategory','gifts.id','=','giftcategory.giftid')
->Join('giftoccasions','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");