Folosesc DataTables unde am un tabel cu toate datele din DB. Problema este la search, acel tabel cand imi cauta, el imi cauta in toate datele din tabel (asta e bine), problema este ca la groupBy daca sunt 2 row-uri au acelasi user_id in cazul meu (user_id nu e unic), si caut ceva, el o sa-mi returneze datele de la ultimul select pe acel user_id.
Spre exemplu: #1: user id = 1 / tag: insomnia - #2: user id = 1 / tag: racing.
Daca eu caut in acel tabel: “insomnia”, nu o sa-mi gaseasca. Doar daca scriu “racing”, pentru ca acela a fost grupa ultimul. Problema este doar pentru user_id la fel. Cum as putea rezolva…?
Daca scot “groupBy”, in tabel o sa am dubluri, si nu vreau asta. E un buton unde ma duce catre toate datele, dar in tabel nu trebuie sa fie dubluri cu acelasi user_id.
Gruparea e ok, nu asta e problema. Ideea este ca search-ul imi cauta in toate datele din tabel. Si la groupBy, o parte din date dispar. Si la search, nu mi le mai afiseaza. Pentru ca search-ul nu face un query in baza de date, asa e construit, sa caute doar in tabel.
Ma gandeam cum sa atasez si dublurile acolo unde este cazul incat search-ul sa le ia in considerare si sa le afiseze cand le caut.
Da, tu cand dai groupBy(‘user_id’), tu mai dai si MAX(create_at) ceea ce inseamna ca iti selecteaza ultimul rand pentru acel user_id care are created_at cel mai nou ( adica ultimul ) care contine tag: racing.
Tu ai nevoie sa iti returneze 2 randuri cu user id: 1
1 cu tag: insomnia si 1 cu tag: racing, sa ai practic un tabel de genul:
user_id | tag
1 | insomnia
1 | racing
Incearca sa grupezi dupa user_id si tag: groupBy([‘user_id’, ‘tag’]) sau tag-ul este in latest_posts ?