Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fell

limitir por lista

Recommended Posts

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_photo

FROM 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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.