فرشید مرادی
4 سال پیش توسط فرشید مرادی مطرح شد
4 پاسخ

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

سلام وقت بخیر ،
من یک جدول مقادیر ویژگی ها دارم که رنگ های مختلف یک محصول داخل این جدول ذخیره میشه اما رنگ تکراری هم داره و برای فراخوانی از 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);
    }
}

ثبت پرسش جدید
moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 4 سال پیش مطرح شد
1

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

config/database.php
strict => false

@eniack


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 4 سال پیش مطرح شد
1

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

$users = DB::table('users')->distinct()->get();
$ad->getcodes()->distinct()->count('pid');

moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 4 سال پیش مطرح شد
1

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

config/database.php
strict => false

@eniack


فرشید مرادی
تخصص : noob
@eniack 4 سال پیش مطرح شد
0

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


moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 4 سال پیش مطرح شد
0

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


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

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