راکت
حل شده

اعمال نشدن فیلتر group by

4 پاسخ

سلام وقت بخیر ،
من یک جدول مقادیر ویژگی ها دارم که رنگ های مختلف یک محصول داخل این جدول ذخیره میشه اما رنگ تکراری هم داره و برای فراخوانی از group by استفاده میکنم که در واقع اون مقادیر تکراری حذف بشن اما ارور زیر رو بهم نمایش میده

SQLSTATE[42000]: Syntax error or access violation: 1055 'farshid_moradi.attribute_values.id' isn't in GROUP BY (SQL: select * from `attribute_values` group by `value`)

و کد های داخل مدل به این صورت هست

class Attribute extends Model
{
    protected $fillable = ['name'];

    public function values()
    {
        return  $this->hasMany(AttributeValues::class);
    }
}
class AttributeValues extends Model
{
    protected $fillable = ['value' ];

    public function attribute()
    {
        return $this->belongsTo(Attribute::class);
    }
}
ثبت پرسش جدید

پاسخ‌ها

4
moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

بهترین پاسخ

سلام
ممکن مشکل از strict mode باشه

config/database.php
strict => false

@eniack

محمد رضا
محمد رضا
@salar.mohammad2013

تخصص: Full Stack Developer

سلام
از distinct استفاده کن تا تکراری بهت بر نگردونه
مثال هایی که ممکنه بدردت بخوره پایین قرار دادم
اگر نه که migration رو و کد داخل کنترلر که groupby کردی رو هم بزار برامون
ولی در کل این که رنگ تکراری داشته باشی به نظر اشتباه در ذخیره سازی نیست؟

$users = DB::table('users')->distinct()->get();
$ad->getcodes()->distinct()->count('pid');
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@mohaligateway
ممنونم از شما
مشکل از همین قطعه کد بود ،
ولی دلیلشو متوجه نمیشم ؟!

شاید پاسخ شما همین‌جا باشد

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

خواهش می کنم.
می تونید از این لینک دلیل این موضوع رو متوجه بشید.
@eniack

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام