我尝试加入2个表,但出现此错误:
Illuminate \ Database \ QueryException: SQLSTATE [23000]:违反完整性约束:1052 where子句中的“ user_id”列不明确(SQL:选择
sadaqah_history
。total
,sadaqah_history
。foundation_donate_id
来自{{1}上dzikir_counter
内部联接sadaqah_history
。sadaqah_history
=user_id
。dzikir_counter
user_id
= 25和DATE_FORMAT(dzikir_date,'%Y-%m-%d')在/var/www/backend.zipedia文件中的'2019-07-01'和'2019-07-31'之间) .id / vendor / laravel / framework / src / Illuminate / Database / Connection.php在第664行
user_id
$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();
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'
];
我要实现的是与此相同的 SQL查询:
SELECT ,dzikir_counter.user_id,dzikir_counter.dzikir_date,sadaqah_history.sadaqah_date,dzikir_counter.dzikir_total,sadaqah_history.point_total,sadaqah_historyateto.sadaqah_history.total。 FROM
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', ];
内部联接dzikir_counter
开启 dzikir_counter.user_id = sadaqah_history.user_id和dzikir_counter.dzikir_date = sadaqah_history.sadaqah_date
ORDER BYsadaqah_history
。sadaqah_history
DESC
答案 0 :(得分:1)
替换
DzikirCounter::where('user_id', $user->id)
使用
DzikirCounter::where('dzikir_counter.user_id', $user->id)
您收到的错误意味着user_id
和dzikir_counter
表中都存在sadaqah_history
列。在这种情况下,您应该指定应在哪个表上执行WHERE。