基於 MySql 三 複雜sql語句

2022-06-16 11:54:10 字數 2970 閱讀 3554

目錄1.表結構如下所示(指令碼資料**qq群免費獲取):

set names utf8mb4;

set foreign_key_checks = 0;

drop table if exists `hy_area`;

create table `hy_area` (

`id` int(0) not null auto_increment comment 'id',

`pid` int(0) null default null comment '父id',

`short_name` varchar(100) character set utf8 collate utf8_general_ci null default null comment '簡稱',

`name` varchar(100) character set utf8 collate utf8_general_ci null default null comment '名稱',

`merger_name` varchar(255) character set utf8 collate utf8_general_ci null default null comment '全稱',

`level` tinyint(0) null default null comment '層級 0 1 2 省市區縣',

`pinyin` varchar(100) character set utf8 collate utf8_general_ci null default null comment '拼音',

`code` varchar(100) character set utf8 collate utf8_general_ci null default null comment '長途區號',

`zip_code` varchar(100) character set utf8 collate utf8_general_ci null default null comment '郵編',

`first` varchar(50) character set utf8 collate utf8_general_ci null default null comment '首字母',

`lng` varchar(100) character set utf8 collate utf8_general_ci null default null comment '經度',

`lat` varchar(100) character set utf8 collate utf8_general_ci null default null comment '緯度',

primary key (`id`) using btree

) engine = innodb auto_increment = 3750 character set = utf8 collate = utf8_general_ci row_format = dynamic;

set foreign_key_checks = 1;

2.查詢所有上級

-- 查詢所有上級

select

t2.id,

t2.pid,

t2.short_name,

t2.`name`,

t2.merger_name,

t2.`level`,

t2.pinyin,

t2.`code`,

t2.zip_code,

t2.`first`,

t2.lng,

t2.lat,

t2.fid

from

( select

@r as _id,

( select @r := pid from hy_area where id = _id ) as parent,

@l := @l + 1 as lvl

from

( select @r := 2682, @l := 3 ) vars,

hy_area h

where

@r <> 0

) t1

join hy_area t2 on t1._id = t2.id

order by

t2.id;

3.查詢所有下級

-- 查詢所有下級

三 複雜sql語句之多表聯查

像這種sql語句的核心是 建立目標字段之間的關係對映表,中間依靠各種中間臨時表來搭建 複雜sql語句 update business b,建立商戶與星級的對應關係表 select o.business id,sum a.star totalstar,count totalcomment from o...

複雜SQL語句提問

table t1 和 table t2 表結構相同,但資料不同 t1 create table t1 id int,tm datetime,data varchar 200 資料 1 2009 11 11 資料1 1 2009 11 12 資料2 2 2009 11 12 資料3 3 2009 11...

sql複雜查詢語句

1.描述 在資料庫中使用sql語句查詢資料,常常需要做報表和統計分析。難免需要做很多的複雜查詢。解決方案 呼叫資料庫的自帶函式 我用的是mysql的函式 來查詢 函式中巢狀函式來實現複雜查詢 2.例項 求差函式 sum 函式巢狀函式查詢 使用timestampdiff函式查詢2002 01 01到現...