如何在MySQL数据库进行子查询
不能先select出同一表中的某些值,再update这个表(在同一语句中)
解决方案
1
2
3
4
5
6
7
--1.把需要删除的数据放到另外的一张表里
create table table_test as select oneName from one
group by OneName,OneAge,oneSex,oneAddress having count(oneName) > 1;
--2.删除不需要的数据
delete from one where onename in(select oneName from table_test);
--3.删除创建的表
drop table table_test;
SELECT goods_id,goods_name,goods_price FROM tdb_goods WHERE goods_price=(SELECT ROUND (AVG(goods_price),2) FROM tdb_goods);
方法/步骤1
首先,在一个查询中的查询结果作为外层查询的条件,可以用IN关键字,代码如下:
SELECT * FROM city WHERE CountryCode IN (SELECT Code FROM country);
如下图所示:
2
其次,外层查询的条件不在内层查询结果,可以用NOT IN关键字,代码如下:
SELECT * FROM city WHERE CountryCode NOT IN (SELECT Code FROM country);
如下图所示:
3
使用EXISTS关键字查询时,内层查询语句不返回查询的记录,而是返回一个Boolean值;当内层查询返回的值为true时,外层查询语句将进行查询,如果返回false时,将不进行查询或查询结果为空,代码如下:
SELECT * FROM city WHERE EXISTS (SELECT Name FROM country);
如下图所示:
4
由第三步可知,与EXISTS相对的是NOT EXISTS,当内层查询返回的值为false时,外层查询语句将进行查询,如果返回true时,将不进行查询或查询结果为空,代码如下:
SELECT * FROM city WHERE NOT EXISTS (SELECT Name FROM country);
如下图所示:
5
满足其中的任一条件,就可以通过该条件来执行外层查询语句,用关键字ANY,代码如下:
SELECT * FROM city WHERE Population >= ANY (SELECT Population FROM country);
如下图所示:
6
子查询还包含比较运算符,有“>="、“<="、"!="等关键字,代码如下:
SELECT * FROM city WHERE Population >= (SELECT Population FROM country WHERE Name = 'Afghanistan');
SELECT * FROM city WHERE Population <= (SELECT Population FROM country WHERE Name = 'Afghanistan');
SELECT * FROM city WHERE Population != (SELECT Population FROM country WHERE Name = 'Afghanistan');
如下图所示:
7
满足所有条件,只有满足内层查询语句返回所有结果,代码如下:
SELECT * FROM city WHERE Population >= ALL (SELECT Population FROM country WHERE Name = 'Afghanistan');
如下图所示:
http://jingyan.baidu.com/article/73c3ce280d68f2e50243d960.html
postgresql与mysql相比,优势何在?
几乎任何数据库的子查询性能都比 MySQL 好。MySQL 在处理数组和 JSON 数据时不如 Pg 强大,Pg 可以在数组和 JSON 上建立索引,甚至使用表达式索引。Pg 还设计了 jsonb 存储结构以实现文档数据库功能。考虑到性能和灵活性,Pg 的 jsonb 结构优于 MongoDB 的 BSON。使用 Pg + PostgREST 可以快速高...
PostgreSQL 与 MySQL 相比,优势何在?
4. 查询灵活性MySQL 不支持跨序列获取 id,而在 PostgreSQL 中,这种操作变得简单易行。此外,PostgreSQL 的 OVER 子句为解决诸如“每组取 top 5”这样的问题提供了强大的工具。5. 性能与子查询 几乎所有的数据库在子查询性能上都优于 MySQL,这使得 PostgreSQL 在复杂查询场景中更具优势。6. 高级特...
解释:safe_mysqld --set-variable max_allowed_packet=24M &_百度...
各具一格的心窍,而今何在?偶像光溜溜裹在布里,似已死亡,你应用露丝、米瑞安和诺埃米的悲哀来装扮她。因羞愧而浑身灼热。卷一支玉笛,哈哈
JDBC和ODBC的区别何在?
JDBC是JAVA通过数据库驱动与数据库进行通信,JDBC Java数据库连接,专门面向Java的数据库连接支持,而ODBC是JAVA通过WINDOWS的数据源管理再与数据库通信,也就是所说的桥接;ODBC是早期的数据库规范,开放数据库连接。
PostgreSQL与MySQL相比,优势何在?
PostgreSQL数据库的源代码要比MySQL数据库的源代码更容易读懂,如果团队的C语言能力比较强的话,就可以在PostgreSQL数据库上做开发,比方说实现类似greenplum的系统,这样也能与现在的分布式趋势接轨。 为了说明PostgreSQL的功能,下面从“从Oracle迁移到Mysql之前必须知道的50件事”简要对比一下PostgreSQL数据库与MySQL数据库...
【SQL】表中的空字符串与NULL中的区别何在
mysql> INSERT INTO my_table (phone) VALUES (NULL); mysql> INSERT INTO my_table (phone) VALUES (''); 这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“...
如何学好电脑
如果是学习软件的话,建议学习web软件,也就是人们所说的网站编程,从最基本html、css、javascript、然后学习sqlserver(或者mysql、Oracle等数据库)、然后学习一门专业的编程语言例如Java、Jsp、Struts、Spring、hibernate等等。总之,要学习的内容比较多,冰冻三尺非一日之寒。 第二点里头所提的计算机网络、操作系统、组成原...
java技术相比C++有什么优势?
java相比C++优势何在? 安全性 跨平台 对程序员来说会写一个东西会更稳定更健壮吧好学 《万户OA》JAVA技术开发的OA具有什么优势 云海OA办公自动化系统,基于java开发平台,MVP架构,跨操作系统(windows\/linux\/unix等)跨数据库(mysql\/mssqlserver\/oracel\/db2\/sybase等)跨应用服务器(tomcat\/...
JAVA连接SQL数据库
import java.sql.ResultSet; \/\/都是导入一些下面需要用到的类 String ConnStr="jdbc:microsoft:sqlserver:\/\/WINJUE:1433;DatabaseName=library";\/\/jdbc连接数据库url public sqlServer() { try { Class.forName(DBDriver).newInstance(); \/\/加载SQLServer驱动程序,DBDriver是你上面的代码;conn=...
戴图金思: SELECT 名字,count(日期) as 次数 from 表 group by 名字,日期
石柱土家族自治县13262931860: mysql 子查询 - ?
戴图金思: 第一个改为 update table1 set a = a+1 即可.第二个看不出来错误,如果各个表名,字段名都有,则不应该错
石柱土家族自治县13262931860: mysql什么时候使用子查询,什么时候使用表连接查询,关系多张表的时候该怎么查询 - ?
戴图金思: 1,表关联的效率要高于子查询,因为子查询走的是笛卡尔积 2,表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好走子查询
石柱土家族自治县13262931860: mysql如何实现跨数据库查询并按where子 - ?
戴图金思: select * from 表名 where 时间并不需要转换, --五月份的人名除去五月之前的人名——即为五月新增的人名 select distinct 人名 from 表名 where convert(varchar(6),时间,112)='201105' and 人名 not in (select distinct 人名 from 表名 where convert(varchar(6),时间,112)
石柱土家族自治县13262931860: mysql数据库如何用一条语句同时查多个数据库 - ?
戴图金思: 1. 子查询方法 select * from DB2.table2 where 字段 in (select table1中相应字段 from DB1.table1 where table1中相应字段=相应值)2. 左连接方法 select table2.* from DB2.table2 left join DB1.table1 on table1.字段 = table2.相应字段 where table2....
石柱土家族自治县13262931860: mysql多表查询sql语句怎么写? - ?
戴图金思: 一使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE ...
石柱土家族自治县13262931860: 简述数据库查询子查询的种类与执行方法 - ?
戴图金思: (1)相关子查询 where exists(select .....)先执行外查询再执行内查询不相关子查询 where Sno in (select ....)先执行内查询再执行外查询 (2)从谓词上分为some\any\all和exists和其他 (3)从结果集上分为行、列、标量、表子查询
石柱土家族自治县13262931860: mysql子查询 - ?
戴图金思: 试试:select * from `rights` where id not in ( select id from `rights` limit 80) limit 10;
石柱土家族自治县13262931860: Mysql中的update语句如何嵌套子查询 - ?
戴图金思: update tablename a,(select * from tablename where xx='xxx') b set a.xx='xxx' where a.id=b.id
石柱土家族自治县13262931860: mysql带条件子查询的执行顺序是怎样的 - ?
戴图金思: 先执行子查询 获得子查询条件 再执行父查询