fell 0 Denunciar post Postado Março 31, 2012 Boas. Esta query vai buscar todas os membros pertencentes às listas. O que eu queria era limitar por dois membros por cada lista. Provavelmente uma sub query com limit. Alguma ideia em como fazer isso? SELECT U.username, U.update_photoFROM users U INNER JOIN lists_has_users H ON U.id_user = H.users_id_user INNER JOIN lists L ON L.id_lists = H.lists_id_lists WHERE L.users_id_user = ? Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 31, 2012 Boas. Esta query vai buscar todas os membros pertencentes às listas. O que eu queria era limitar por dois membros por cada lista. Provavelmente uma sub query com limit. Alguma ideia em como fazer isso? você poe dar um exemplo de suas tabelas...? você tem.. tabela membros, listas.. pode dizer como funciona pra poder te ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
fell 0 Denunciar post Postado Março 31, 2012 você poe dar um exemplo de suas tabelas...? você tem.. tabela membros, listas.. pode dizer como funciona pra poder te ajudar? Obrigado pela resposta. Então é assim. Eu tenho estas tabelas. tabela users id_user username update_photo 1 Pedro caminho_para_foto 2 Joao caminho_para_foto 3 Carlos caminho_para_foto 4 José caminho_para_foto 5 António caminho_para_foto 6 Toni caminho_para_foto tabela lists id_lists name_list users_id_user 1 amigos 9 // o dono da lista 2 colegas 9 // o dono da lista tabela lists_has_users users_id_user lists_id_lists 1 1 2 1 3 1 4 2 5 2 6 2 Agora o resultado que eu queria seria: 1 Pedro caminho_para_foto 2 Joao caminho_para_foto 3 Carlos caminho_para_foto 4 José caminho_para_foto 5 António caminho_para_foto 6 Toni caminho_para_foto Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 31, 2012 Qual o motivo de você querer descartar os outros membros? ja que ele tbm fazem parte da lista do usuario? Compartilhar este post Link para o post Compartilhar em outros sites
fell 0 Denunciar post Postado Março 31, 2012 Qual o motivo de você querer descartar os outros membros? ja que ele tbm fazem parte da lista do usuario? Eu queria apresentar só uma amostra dos elementos de cada grupo e depois ter um ver mais, em que clicando seriam apresentados noutra página todos os membros de cada grupo. Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 31, 2012 Amigo eu tentei fazer essa query.. mais o mysql tem uma restrição uma subquery não conseguir pegar um valor da query externa.. SELECT * FROM users u INNER JOIN lists_has_users h ON ( u.id_user = h.users_id_user ) INNER JOIN lists l ON ( h.lists_id_lists = l.id_lists ) WHERE h.users_id_user IN ( SELECT * FROM ( SELECT uu.id_user FROM users uu INNER JOIN lists_has_users hh ON ( uu.id_user = hh.users_id_user ) where hh.lists_id_lists = l.id_lists limit 2 ) as type ) Então você terá que fazer duas querys... separadas... :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
fell 0 Denunciar post Postado Março 31, 2012 ola macielcr7. Mais logo eu vou testar e ver no que dá. Depois deixo feedback. obrigado :) Amigo eu tentei fazer essa query.. mais o mysql tem uma restrição uma subquery não conseguir pegar um valor da query externa.. SELECT * FROM users u INNER JOIN lists_has_users h ON ( u.id_user = h.users_id_user ) INNER JOIN lists l ON ( h.lists_id_lists = l.id_lists ) WHERE h.users_id_user IN ( SELECT * FROM ( SELECT uu.id_user FROM users uu INNER JOIN lists_has_users hh ON ( uu.id_user = hh.users_id_user ) where hh.lists_id_lists = l.id_lists limit 2 ) as type ) Então você terá que fazer duas querys... separadas... :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
fell 0 Denunciar post Postado Abril 1, 2012 amigo, eu consegui resolver deste jeito. O meu muito obrigado. SELECT lists.id_lists, users.id_user, users.username, users.update_photo FROM (users INNER JOIN ( SELECT users_id_user, lists_id_lists FROM lists_has_users WHERE ( SELECT count(*) AS quant FROM lists_has_users AS l WHERE l.lists_id_lists = lists_has_users.lists_id_lists AND l.users_id_user <= lists_has_users.users_id_user ) <= 2 ) AS lists_has_users_filtered ON users.id_user = lists_has_users_filtered.users_id_user) INNER JOIN lists ON lists.id_lists = lists_has_users_filtered.lists_id_lists Compartilhar este post Link para o post Compartilhar em outros sites