mysql - 对查询结果 MySQL 执行查询
问题描述
我想查询一个查询以找到不匹配的 id。我有一个 ID 列表,我想要所有关于它们的信息,所以我做了一个简单的查询,例如:
SELECT * FROM table1 WHERE id IN(list_of_ids);
请注意“list_of_ids”是一个包含 274 个数字的列表,如下例所示(格式如下(number1, number2, number3)
+---------+
| id |
+---------+
| 112234 |
| 345657 |
| 45332 |
| 1234665 |
| 213423 |
+---------+
我输出了 151 行,所以有些 ID 我没有得到任何信息。我想看看哪些是那些 ID,只是为了进行质量检查,看看查询/错字是否有错误,或者我真的没有关于这些的任何信息(我怀疑)。
我尝试了一些我发现搜索的方法,但没有一个有效(如使用函数VALUES
和创建临时表)
我知道我可以简单地用一列和这个值创建一个新表,然后沿着这条线做一些事情
SELECT * id2 FROM table2 JOIN table1 WHERE id2 NOT LIKE id1";
(还没有测试过,但我想它可能会起作用)
但我觉得这是我以后会有点频繁面对的事情,所以我更喜欢更直接的方式来做这件事,而不是每次都创建一个表。此外,我认为学习一种更直接的方式比为这样的“简单”任务创建和删除表更可取
有没有办法做类似的事情
SELECT id2 FROM subquery JOIN table1 WHERE id2 != id1 FROM (SELECT * FROM table1 WHERE id IN (list_of_ids)) AS subquery;
我知道,这永远不会奏效,而只是为了给我想要实现的目标一种味道。对不起眼睛流血!
谢谢!
解决方案
只需在第二部分使用一个UNION
函数,如下所示:NOT IN
SELECT * FROM table1 WHERE id IN(list_of_ids) UNION SELECT * FROM table1 WHERE id NOT IN(list_of_ids);
我希望这是你想要的。
推荐阅读
- html - 如何使地图适合显示表中的 div 框
- android - Admob 广告匹配率在 8 月突然下降
- jquery - 数据表 延迟加载数据。如何动态传递“deferLoading”值
- jmeter - 如何查看服务器对意外帧类型 (ping) 的响应
- reactjs - Jest SpyOn 选择正确的重载
- javascript - 使用 try catch 块捕获错误并显示
- python - 在 Python 中执行命令时发生错误
- python - 无法在 hvplot 轴上绘制 datetime64[ns]('pandas_datetime_types' 未定义'错误)
- react-select - 你好,点击编辑按钮,之前选择的数据在
硬刷新时不显示 - discord.js - 如何在 discord.js 上添加服务器统计通道