MySQL - Query multiple

 
Vista:

Query multiple

Publicado por Cesar gutierrez (1 intervención) el 20/09/2018 03:09:48
Que tal, estoy tratando de realizar un query en el cual selecciono múltiples datos de 3 tablas diferentes 'Users', 'Perfiles', 'Preferences' hasta el momento me funciona para seleccionar tooodos los usuarios que hay en la base de datos a excepción del que esta logeado y de quien tiene bloqueado al usuario logeado (Espero estarme dando a entender).

Pero ahora quiero que el query seleccione todos los datos de las 3 tablas dependiendo del id, que no tenga bloqueado al usuario logeado y que esten dentro del mismo paquete, he cambiado de mil maneras el query pero no logro obtener el resultado deseado.

Espero alguien me pueda ayudar

la tabla de usuarios tiene el id, paqueteSuscripcion, nombre, nickname, ect.
la tabla perfiles tiene el id, idUser, gender, etc.
la tabla preferences tiene el id, idUser,gender, etc.

el query actual que quiero consta de lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT *
FROM perfiles p
LEFT OUTER
JOIN(
SELECT u.id, u.nickname, u.email, u.recomendado, u.paqueteSuscripcion, w.idUserWished, l.idUserLiked, b.idBlocked, m.idMatched, m.accepted,(
SELECT COUNT(DISTINCT msn.UserReceiver)
FROM messages msn
WHERE msn.userEmitter = 1) AS 'cantidad'
FROM users u
LEFT OUTER
JOIN wish w ON w.idUserWished = u.id
LEFT OUTER
JOIN likes l ON l.idUserLiked = u.id
LEFT OUTER
JOIN blocked b ON b.idBlocked = u.id
LEFT OUTER
JOIN matches m ON m.idMatched = u.id
WHERE NOT EXISTS (
SELECT idBlock
FROM blocked b
WHERE b.idBlock = u.id AND b.idBlocked = $usuarioActual) AND u.id <> $usuarioActual
ORDER BY id DESC) AS p2 ON p.idUser = p2.id
WHERE p.gender = :gender AND p.age BETWEEN :age AND :age2 AND p.edoCivil = :edoCivil AND p.location = :location AND p.id <> $usuarioActual

pero quiero que seleccione todos los datos actuales pero siempre y cuando tengan el mismo paqueteSuscripcion

Es decir... quiero que todos los usuarios que tengan el paquete 1 se muestren en la vista del paquete 1, los del paquete 2 en la vista del paquete 2 y así sucesivamente.

Espero alguien pueda ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder