Я пытаюсь объединить 2 таблицы, но получаю эту ошибку:
Подсветка \ База данных \ QueryException: SQLSTATE [23000]: Нарушение ограничения целостности : 1052 Столбец 'user_id', где предложение неоднозначно (SQL: выберите sadaqah_history
. total
, sadaqah_history
. foundation_donate_id
из dzikir_counter
внутреннее соединение sadaqah_history
в sadaqah_history
. user_id
= dzikir_counter
. user_id
, где user_id
= 25 и DATE_FORMAT (dzikir_date, '% Y-% m-% d') МЕЖДУ «2019-07-01» И «2019-07-31») в файле /var/www/backend.zipedia.id/vendor/laravel/framework/src/Illuminate/Database/Connection.php в строке 664
Код моего API-контроллера:
$startDate = Carbon::parse(new Carbon('first day of this month'))->toDateString();
$endDate = Carbon::parse(new Carbon('last day of this month'))->toDateString();
$models = DzikirCounter::where('user_id', $user->id)
->whereRaw("DATE_FORMAT(dzikir_date, '%Y-%m-%d') BETWEEN '$startDate' AND '$endDate'")
->join('sadaqah_history', 'sadaqah_history.user_id', '=', 'dzikir_counter.user_id')
->get(['sadaqah_history.total', 'sadaqah_history.foundation_donate_id'])
->actived()
->orderBy('dzikir_date', 'desc')
->get();
Модель 1 (Dzikir_Counter):
protected $table = 'dzikir_counter';
protected $fillable = [
'user_id',
'counter',
'dzikir_total',
'dzikir_date',
'total',
'dzikir_detail',
'status',
'deleted_at',
'created_at',
'updated_at',
'created_by',
'updated_by',
];
protected $appends = [
'dzikir_details'
];
protected $hidden = [
'dzikir_detail',
'user_id',
'created_by',
'updated_by',
'deleted_at'
];
protected $casts = [
'counter' => 'int',
'dzikir_total' => 'int',
'status' => 'int',
'user_id' => 'int'
];
Модель 2 (Sadaqah_History):
protected $table = 'sadaqah_history';
protected $fillable = [
'user_id',
'name',
'point_total',
'total',
'sadaqah_date',
'status',
'is_dzikir',
'foundation_donate_id',
'created_at',
'updated_at',
'created_by',
'updated_by',
];
protected $hidden = [
'id',
'user_id',
'name',
'point_total',
'created_at',
'updated_at',
'created_by',
'updated_by',
'foundation_donate_id',
'created_by',
'updated_by'
];
protected $casts = [
'status' => 'int',
'is_dzikir' => 'int',
'point_total' => 'int',
'total' => 'int',
'user_id' => 'int',
'foundation_donate_id' => 'int',
];
То, чего я хочу добиться, это SQL-запрос , идентичный этому:
SELECT dzikir_counter.user_id, dzikir_counter.dzikir_date, sadaqah_history.sadaqah_date, dzikir_counter.dzikir_total, sadaqah_history.point_total, sadaqah_hh
ОТ dzikir_counter
внутреннее объединение sadaqah_history
ВКЛ dzikir_counter.user_id = sadaqah_history.user_id И dzikir_counter.dzikir_date = sadaqah_history.sada44ahd
ЗАКАЗАТЬ ПО sadaqah_history
. foundation_donate_id
DESC