MySQL中的多重查询选择

时间:2018-09-20 03:18:53

标签: mysql

我正在尝试查询,可以从3个不同的表中选择多个数据。

其中两个引用1个表“ Users”

表名是“用户”,“配置文件”,“首选项”。

我使用的实际查询效果很好,但是我意识到并没有给我想要的数据

用户表中的

是ID,名称,subscriptionPackage,电子邮件等。 在首选项和配置文件表中,它们必须具有相同的数据,例如id,idUser(通过这种方式引用表用户),colorEye,colorHair,gender等。

实际查询是下一个

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 = 1) AND u.id <> 1
ORDER BY id DESC) AS p2 ON p.idUser = p2.id
WHERE p.gender = "Female" AND p.age BETWEEN 20 AND 30 AND p.edoCivil = "Single" AND p.location = "Mexico" AND p.id <> 1

但是我想要的是带来相同的数据,只是同一包订购中的人的数据除外。

我的意思是,如果用户1、2、3、4、5被包1中的用户覆盖,我想要这些用户的所有数据,并且如果用户10、11、12、13、14、15被包中的用户2我只想要那些用户的数据。

我从查询中移动并删除了代码,但是我没有成功,希望有人可以帮助我

我离开数据库example

0 个答案:

没有答案