Postingan lainnya
Join mult values column laravel mysql
selamat siang gan saya mau bertanya terkait laravel + mysql join jadi saya ada 2 tabel yaitu tabel post dan categories
[url=https://ibb.co/wsx7L1Q][/url] [url=https://ibb.co/VqtXC6d][/url]
hasil yang diharapkan dimana nantinya post dapat menampilkan category name nya pada tabel categories
yang telah saya lakukan antara lain :
$career = DB::table(with(new static )->getTable())
->join('categories', 'posts.category', '=', 'categories.id')
->select(DB::raw('posts.id,posts.title,posts.excerpt,posts.thumbnail,substr(posts.content, 1, 1000) as content,posts.author,posts.thumbnail,categories.category,posts.slug,posts.created_at'))
->orderBy($options['columns'][($options['sort_column'])]['name'],$options['sort_direction']);
$return['total_data'] = count($career->get());
$return['data'] = $career
->skip($options['iDisplayStart'])
->take($options['iDisplayLength'])
->get();
*abaikan code yg lain selain query krn fungsi server side datatables
namun hanya menmpilkan 1 category name pdahal ingin 2 category name muncul krn 1 post terdapat pada 2 category
referensi lain yg telah saya lakukan
$docomuntOrders = \DB::table("posts")
->select("posts.*",\DB::raw("GROUP_CONCAT(categories.category) as docname"))
->leftjoin("categories",\DB::raw("FIND_IN_SET(categories.id,posts.category)"),">",\DB::raw("'0'"))
->groupBy("posts.id")
->get();
namun muncul error :
SQLSTATE[42000]: Syntax error or access violation: 1055 'mywebsite.posts.title' isn't in GROUP BY (SQL: select `posts`.*, GROUP_CONCAT(categories.category) as docname from `posts` left join `categories` on FIND_IN_SET(categories.id,posts.category) > '0' group by `posts`.`id`)
mungkin suhu2 sekalian bisa guide ke saya terkait apa yg harus saya lakukan terima kasih
2 Jawaban:
Di laravel eloquent kategori ini disebut <a href='https://laravel.com/docs/5.8/eloquent-relationships#many-to-many-polymorphic-relations'>relation many to many</a> dimana 1 blog bisa punya banyak tag, dan 1 tag juga bisa dimilik banyak blog
Kamu memerlukan table ketiga yang isinya blog_id dan tag_id, jadi solusinya harus mengubah strukturnya
terima kasih mas hilman intuk responnya hasil searching saya di stackoverflow juga mendapat hasil yg serupa dengan mas hilman. tp ini casenya udah dari sananya struktur tabelnya eperti, jdi mau tidak mau saya harus pakai query tersebut