【发布时间】:2017-06-28 05:05:06
【问题描述】:
我想在我的代码中使用左连接,当我使用 Yii2 左连接时,代码的结果不正确,它会删除一些记录,但是当我使用带有给定命令的 Raw SQL 左连接时,结果是正确的:
sql :(没错)
SELECT tour_date.id as tdid,tour.*, tour_package.*, tour_package.id AS tpid
FROM tour_date
LEFT JOIN tour_package ON tour_date.tour_id=tour_package.tour_id
LEFT JOIN tour ON tour.id=tour_package.tour_id
WHERE tour_package.id
yii2 查询:(错了)
$tourQuery = TourDate::find()
->select(['tour_date.id as tdid','tour.*', 'tour_package.*', 'tour_package.id AS tpid'])
->leftJoin(TourPackage::tableName(), 'tour_date.tour_id=tour_package.tour_id')
->leftJoin(Tour::tableName(), 'tour.id=tour_package.tour_id')
->where(['tour_package.id' => $tourPackageId]);
【问题讨论】:
-
您在 SQL 中缺少 WHERE,请遵循本教程以获得更好的理解。 devprofessor.com/yii2/how-to-use-sql-joins-in-yii2
标签: sql activerecord yii2