mysql - 关系 MySQL 查询
问题描述
我有一个名为 users 的表:
+----+---------+--------+----------------+----------------+----------+
| ID | Name | Zip | Email | Phone | Username |
+----+---------+--------+----------------+----------------+----------+
| 0 | Jill | 33333 | jill@aol.com | (123)123-1245 | idjill |
| 1 | Jack | 11111 | jack@aol.com | (123)111-1111 | idjack |
| 2 | Bob | 66666 | bob@aol.com | (123)222-2222 | idbob |
| 3 | jMarie | 12345 | jill@aol.com | (123)123-1245 | none |
+----+---------+--------+----------------+----------------+----------+
如果我运行SELECT * FROM users WHERE Phone=(123)123-1245
将返回 ID# 0 和 3。
我想要做的是能够选择用户,但也返回具有相同电话或电子邮件但没有邮政编码的任何其他用户。因此,例如,如果我运行SELECT * FROM users WHERE Username= idjill
我希望它返回用户 0 和 3,因为他们都有相同的电话号码。
我怎样才能做到这一点?谢谢。如果有人对这篇文章的标题有更好的想法,请分享。我的第一篇文章,对不起。
编辑:我想我需要澄清一下我的问题。所以我在这里有这个选择查询:
SELECT * FROM users WHERE Username = 'idjill' OR Email = 'idjill'
完美返回 ID 0,我希望它返回 ID 0 和 3。因为电话和电子邮件匹配(我使用相同的输入在用户名和电子邮件之间进行搜索)。
我该如何扩展呢?
解决方案
您可以像这样使用嵌套查询。
SELECT *
FROM users
WHERE Phone=(SELECT PHONE
FROM users
WHERE Name='Jill') OR
Email=(SELECT Email
FROM users
WHERE Name='Jill');
推荐阅读
- ios - 如何用用户上传的照片替换按钮
- mysql - EXPLAIN 从 MariaDB 迁移到 MySQL 后显示“DEPENDENT SUBQUERY”并且速度很慢
- rust - 如何确保函数调用后不可变借用结束以启用可变借用?
- c - 将数组指针递增到最后一项之外
- javascript - 从函数访问数据 [React Native]
- java - 类 Thread 中的构造函数 Thread 不能应用于给定类型;
- oracle - 过时的最后更改日期
- database - 带有 ORDER BY 的文档 DB SDK 导致 ServiceUnvailableException
- android - FragmentStateAdapter 抛出 java.lang.IllegalStateException:配置更改后违反设计假设
- excel - 执行脚本时隐藏powershell窗口