New question

Question:

Date: 28-09-2020 08:23:06 (In Spanish)

Consulta recursiva de uno a muchos a uno[Resolved]

Hola,

Hace rato que no me pasaba por aquí, pero solicito su ayuda tengo un problema muy concreto.

Tengo dos tablas, pero entre ellas necesito hacer 3 consultas con una condición.
Me explico
La tabla usuarios con todos los datos, otra que se llama referred y necesito mostrar las personas que tengan más de 25 referidos pero activos. Entonces de la tabla 1 cojo un id de usuario y lo busco en tabla referidos que me da otro id de usuario y ese referido volver a consultar la tabla de usuarios para saber si esta activo o no.

Lo he intentado de la siguiente manera, pero este me devuelve todos los usuarios
"SELECT * FROM users U WHERE 5 < (SELECT COUNT(*) FROM referred R INNER JOIN users UR ON R.id_affilete = UR.id WHERE active='1')"


Esta no me cumple la condición y me repite son los nombres de quienes tienen afiliado
SELECT * FROM users U INNER JOIN referred R ON U.id = R.id_affilete WHERE (SELECT COUNT(*) FROM users UR WHERE R.id_user = UR.id AND active=1) >= 1


Espero no enredarme mucho
Tags: Database - MySQL - MySQL Developing - PHP - PHP MySQLi - Question - SQL Votes: 0 - Answers: 2 - Views: 5 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 30-09-2020 13:27:00 Se me ocurre algo así, aunque no estoy seguro si puse bien los nombres de campos.
    Estoy suponiendo que en la tabla referred existen dos campos id que apuntan a la tabla users:
    - id_user: el id con el que se obtienen los datos propios del referrido.
    - id_affilete: el id del usuario "padre" del referido.

    Si los usé al revés tendrás que retocar la consulta! :)

    SELECT 
    	users.*,
    	(
    		SELECT COUNT(*) 
    		FROM referred 
    		JOIN users AS users_2
    		ON referred.id_user = users_2.id
    		WHERE referred.id_affilete = users.id 
    		AND users_2.active = 1
    	) AS count_ref
    FROM users
    HAVING count_ref > 25
    
      Votes: 0 - Link answer
     
  • Date: 01-10-2020 06:08:56 Hola,

    Excelente me ha servido y agradezco tu ayuda.
    Por problemas anteriores no puedo votar pero te agradezco.

    Saludos
    Equipo www.quecodigo.com
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In