首页 / MYSQL / mysql替代INTERSECT
mysql替代INTERSECT
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql替代INTERSECT,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2074字,纯文字阅读大概需要3分钟。
内容图文
![mysql替代INTERSECT](/upload/InfoBanner/zyjiaocheng/905/8954f3d11eea446bb55b79a7a9ea15d8.jpg)
我一直在尝试删除相交,因为它不受mysql支持.如果有人能提供一些指示,那将非常有帮助.
SELECT *, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age
FROM user U, user_utilisation UU
WHERE U.id_user = UU.id_user AND cp >= 1 AND cp <= 3000 AND sexe = 'M' AND UU.id_mailing = 6
GROUP BY U.id_user
HAVING age >= 1 AND age <= 100
ORDER BY nom, prenom
INTERSECT
SELECT *, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age
FROM user U, user_utilisation UU
WHERE U.id_user = UU.id_user AND cp >= 1 AND cp <= 3000 AND sexe = 'M' AND UU.id_mailing = 7
GROUP BY U.id_user
HAVING age >= 1 AND age <= 100
ORDER BY nom, prenom
我尝试了JOIN(s),但这就是我现在所拥有的:
SELECT *, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(naissance, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(naissance, '00-%m-%d')) AS age
FROM user U, user_utilisation UU
WHERE U.id_user = UU.id_user AND cp >= 1 AND cp <= 3000 AND sexe = 'M'
AND UU.id_user IN (select id_user from user_utilisation where id_mailing = 6 OR id_mailing = 7)
HAVING age >= 1 AND age <= 100
ORDER BY nom, prenom
但是通过删除GROUP BY,我看到查询选择了2条记录,其中id_mailing = 1,而GROUP BY隐藏了错误的记录.我很确定这可能会导致问题……
user_utilisation只有三个字段id_user,id_mailing和date.
解决方法:
解释您的疑问,在我看来:
>您希望获得所有参与mailing_id 6和7的用户(这就是您进行INTERSECT的原因,是吗?).
>您希望按标准限制这些用户并执行年龄计算.
如果我对你的意图的解释是正确的(完全不确定是这种情况!),你根本不需要INTERSECT,你应该只需要用你想要的标准选择你想要的用户,并限制参与通过JOIN邮寄6和7:
SELECT *, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS age
FROM user U
INNER JOIN user_utilisation UU on U.id_user = UU.id_user and UU.mailing_id = 6
INNER JOIN user_utilisation UU2 on U.id_user = UU2.id_user and UU2.mailing_id = 7
WHERE cp >= 1 AND cp <= 3000 AND sexe = 'M'
HAVING age >= 1 AND age <= 100
ORDER BY nom, prenom
内容总结
以上是互联网集市为您收集整理的mysql替代INTERSECT全部内容,希望文章能够帮你解决mysql替代INTERSECT所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。