mysql 两张表关联查询问题

问题描述

mysql 两张表关联查询问题

现在有表A大概是百万级的数据,表B只有几千行,但是想在查询表A里剔除掉表B的数据,SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id),这种写法效率很低,请问有没有其他的解决方法?

解决方案

这样写当然效率低,因为是笛卡尔积,要用join
select a.*, b.* from a join b on a.id=b.id

解决方案二:

左外连left join

解决方案三:

select * from A where Aid not in (select bId from B)

解决方案四:

Mysql关联查询
两个MYSQL表关联查询
两个MYSQL表关联查询

时间: 2024-12-31 22:53:51

mysql 两张表关联查询问题的相关文章

oracle语句-有关两张表关联查询的sql问题

问题描述 有关两张表关联查询的sql问题 各位大神,一个sql问题请教下 有两张表,分别如下: 充值表t_recharge字段: userId.recharge_money.recharge_count 消费表t_consume字段: userId.consume_money.consume_count 现在的情况是用户可能只存在充值记录或者只存在消费记录,只存在充值记录时,消费记录显示0,只存在消费记录时,充值记录显示0 现在想查出这种结果: userId recharge_money rec

mysql两张表关联设置里面的内容

问题描述 mysql两张表关联设置里面的内容 已经第一张表goods 主键goods_id,价格price,另一张表product 有外键goods_id,价格price.现在要求如果product中的price=0,那么设置这个price的值等于goods表中的price,求这条sql怎么写,谢谢大家 解决方案 update product set product .price=goods.price where product.goods_id=goods.goods_id and prod

信息-mysql中有关两张表关联的查询语句

问题描述 mysql中有关两张表关联的查询语句 宝宝信息表中存的是已经接种过疫苗的信息,is_vaccined为1,另外一张表中,存的是所有疫苗的详细信息.现在,我想通过获取宝宝id来查询该宝宝所有的疫苗的状态(包括已经接种的和未接种的),改怎么写查询语句?? 解决方案 select t1.*, t2.* from t_baby_info t1 left outer join t_vaccine t2 on t1.vaccine_id= t2.vaccine_id 解决方案二: @caozhy

java springmvc-关于MongoDB中两张表的查询

问题描述 关于MongoDB中两张表的查询 我需要根据一级和二级类别的name查询应用程序表的数据.但每次查询的都有用两个while循环, DBCursor cursor1=null; DBCursor cursor=this.dao.getDBCursor(offset, pageSize, db, "thirdCategory", sort); DBObject query1 = new BasicDBObject(); while (cursor.hasNext()) { @Su

sql server-sql查询问题,两张表的查询

问题描述 sql查询问题,两张表的查询 表一通过表一该怎么查询成表二的样子 本人是小白啊,想了一个下午都想不到,求帮忙 解决方案 select timeda,sum((case when result = '胜' then 1 else 0 end)) 胜, sum((case when result = '负' then 1 else 0 end)) 负 from Table_1 group by timeda 解决方案二: select sum(胜), sum(负) from (SELECT

MySQL中三种关联查询方式的简单比较_Mysql

看看下面三个关联查询的 SQL 语句有何区别?   SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) SELECT * FROM film JOIN film_actor USING (film_id) SELECT * FROM film, film_actor WHERE film.film_id = film_actor.film_id 最大的不同更多是语法糖,但有一些有意思的东西值得关注.

MySQL实现两张表数据的同步_Mysql

mysql通过触发器实现两个表的同步,需要了解的朋友可以看一下. 有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发器: begin set @disable=1; if @disable=1 and NOT EXISTS(SELECT 1 FROM tableB where ID=new.ID) then insert into tableB (

SQL语句查询服务器不同库的两张表联查

同台服务器不同库的两张表联查 这种方法只限于在同台服务器的数据库. 一.建立两个数据库,库A(表a) 和 库B(表b) . 二.给两个库分配同样的帐号权限. 三.在查询的时候使用下面语句:  代码如下 复制代码 select * from A.dbo.a, B.dbo.b where A.dbo.a.id=B.dbo.b.id   这个sql语句达到的效果就是 库A 和 库B  中,表a 和 表b 中id相等的数据. 以上方法就是一个简单的同服务器不同库的连表查询. 不同服务器不同数据库两张表连

数据库SQL,将两张表合并为一张表

问题描述 数据库SQL,将两张表合并为一张表 将表table1.table2合并为表table3 table1: id name value 1 阅读 5 1 视频 7 1 游戏 7 2 阅读 1 2 游戏 3 table2 id name value 1 阅读 8 1 视频 9 1 游戏 2 2 阅读 11 3 视频 4 table3: id name value1 value2 1 阅读 5 8 1 视频 7 9 1 游戏 7 2 2 阅读 1 11 2 游戏 3 0 3 视频 0 4 解决