WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

mysql从一张表查询出一个字段的数据不在另一张表的另一个字段里方法

更新时间:2021-06-29 12:59 作者:Chen_leilei点击:
先说一个前提哈,前提是关联字段,有一个表里有所有的数据。另一个表里只有其中的某些数据。工作中遇见一个问题,两张数据量大约在几千万数据量吧,并且两张表的结构还不一样,但是其中有一个字段可以关联,通常我们会采取not in的方式来查询,比如 select a.uid from a where a.uid not in (select b.id from b)。但数据量大就等着吧,好慢好慢。。。
 
终于不想等了,分析了一下问题,看新sql:
 
SELECT * FROM (
(SELECT uid FROM a)
UNION ALL
(SELECT id as uid FROM b)
) t
GROUP BY t.uid
HAVING COUNT(t.uid )=1
 
当=1时,查询出来的就是差集,当>1时,肯定是两个表都有的也就是并集
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容