sql脚本练习

  多写sql语句,才能对数据库操作更加熟练。

create database springbootdemo;
use springbootdemo;
create table user; // 这个脚本会提示table中没有row;

   sql中的distinct和group by语句的使用

// distinct前面无字段,后面多字段时,会拼接形成key,num-name;
select distinct num,name from iam.product;
// group by 前面为字段本身,或者函数,而不应该有其他字段,如name
SELECT  count(121),name  FROM   iam.product group by  num LIMIT 0, 50000    
Error Code: 1055. Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'iam.product.name' which is not functionally dependent on columns in GROUP BY clause; 
this is incompatible with sql_mode=only_full_group_by    0.0020 sec

  复杂一点的语句:

delete from stock   
where (org_id,material_id,state) in  
(SELECT * from (select org_id,material_id, state 
from stock WHERE state = 1 group by org_id,material_id,state having count(*) > 1) as a ) 

  这个包含子查询,联表查询,group by查询的的语句,能够表达我的意思,但是却运行不同,不知道什么问题。

复制代码
   SELECT
        farm.CODE,
        farm.NAME as name,
        farm.she_id as wf_farm_she_id,
        farm.fan_actual_count,
        farm.fan_running_count,
        farm.manager_name,
        farm.status,
        wfa.update_time as update_time,
        wfa.create_time as create_time,
        wfa.create_user as create_user,
        (select count(*) from md_user as mu where wf_farm.CODE =mu.USER_ID) as update_user
    FROM
        wf_farm as farm
        LEFT JOIN wf_fan_archives as wfa ON farm.code = wfa.WF_FARM_CODE 
        WHERE
        farm.MARK_FOR_DELETE = 0
        group by farm.CODE ;
复制代码

  最后发现是值的指代问题。 

posted @   懂得了才能做一些改变  阅读(420)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示