首页 > 其他分享 >自连接及联表查询练习

自连接及联表查询练习

时间:2023-12-11 19:57:39浏览次数:20  
标签:category categoryName 练习 pid 查询 联表 table categoryid

-- 自连接
CREATE TABLE`category`(
`categoryid`INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT'主题',
`pid`INT(10)NOT NULL COMMENT '父id',
`categoryName`VARCHAR(50)NOT NULL COMMENT'主题名字',
PRIMARY KEY(`categoryid`)
)ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8

INSERT INTO `category`(`categoryid`,`pid`,`categoryName`)
VALUES('2','1','信息技术'),
('3','3','软件开发'),
('4','3','数据库'),
('5','1','美术设计'),
('6','3','web开发'),
('7','5','ps技术'),
('8','2','办公信息');
/*自己的表和自己的表连接,核心:一张表拆为两张一样的表即可
父类
categoryid categoryName
2 信息技术
3 软件开发
5 美术设计

子类
pid categoryid categoryName
3 4 数据库
2 8 办公信息
3 6 web开发
5 7 ps技术

操作:查询父类对应子类关系
父类 子类
信息技术 办公信息
软件开发 数据库
软件开发 web开发 */

-- 查询父子信息:把一张表看为两个一模一样的表
SELECT a.`categoryName` AS '父栏目',b.`categoryName` AS '子栏目'
FROM `category` AS a,`category` AS b
WHERE a.`categoryid`=b.`pid`
-- 联表查询(学生的学号,学生姓名,性别)
SELECT s.`id`,s.`name`,ss.`sex`
FROM `student2` s
INNER JOIN `student2_copy` ss
ON s.`id` = ss.`id`
/*关于数据库报错有歧义的列名
原因是,在多表查询时,查询出的结果列字段在多表中重复出现,需要使用别名.列明查询

select语法
select[all | distinct]
{*|table.*[table.fieldl[as aliasl][,table.field2[as alias2]][......]]}
from table_name[as table_alias]
[left | right | inner join table_name]联合查询
[where...]指定结果需满足的条件
[group by ...]指定结果按照哪几个字段来分组
[having]过滤分组的记录必需满足的次要条件
[order by]指定查询记录按一个或多个条件排序
[limit {[offset,]row_count | row_countoffset offset}];指定查询的记录从哪条至哪条
注:[]代表可选的,{}代表必选的*/

 

标签:category,categoryName,练习,pid,查询,联表,table,categoryid
From: https://www.cnblogs.com/ly123dcom/p/17895413.html

相关文章

  • 联表查询joinON详解
    --联表查询join--查询参加了考试的同学(学号,姓名,成绩)ALTERTABLE`student2_copy`ADDgradeINT(100)UPDATE`student2_copy`SET`grade`=66WHEREid=1;UPDATE`student2_copy`SET`grade`=89WHEREid<8ANDid>2--添加成绩SELECT*FROM`student2`;SELECT*FROM`student......
  • 模糊查询操作符详解
    --模糊查询--查询姓狂的同学--like结合 %(代表零到任意个字符) _(代表一个字符)SELECT`id`,`name`FROM`student2`WHERE`name`LIKE'狂%'INSERT`student2`(`name`)VALUES('狂神');--添加--查询姓狂的同学,名字后面只有一个字的SELECT`id`,`name`FROM`student2`WHERE`na......
  • Flask ORM 学习笔记Part09:数据查询(上)
    前面的笔记,从Marshmallow开始就稍微有些跑题,今天记录一下如何使用Flask-SQLAlchemy进行数据查询。查询语法糖在前文中,有定义过一系列的model类,这里一Account类作为示例。fromappimportappfrommodelimport*fromschemaimport*frompprintimportpprint#fromsqlalchem......
  • mysql存json数据时的查询办法
    很多时候mysql的一列当中存的是json格式的数据,这时候如果要查询某个key对应的值的时候要如何查询呢,这里记录一种查询方法:json列的值:{“InventoryMainTypeCode”:1,“InventoryMainTypeName”:“GOOD”}现在要查询InventoryMainTypeCode为xxx或者InventoryMainTypeName为xxx的数......
  • Cesium 加载倾斜摄影模型记录(osgb切片,shp拔高切片、模型加载、鼠标移入选中、点选查
    一、shp模型拔高切片shp如果数据量过大,做分类处理,加载会异常慢,所以需要先对其进行分割之后再进行切片(用qgis即可)切片规则设置1、记得勾选构造底面 2、如果你的shp数据中有高度字段的话,可以选择高度字段,如果没有的话,设置固定高度的高度比你的模型稍微高一点,可以保证包着整个模型,......
  • Hibernate查询数据库记录自动修改的问题
    问题描述在项目中使用了hibernate进行查询记录,但是每次查询了记录后,发现控制台打印的sql不仅有select查询语句,还有update语句,但代码中并没有执行update的代码,就很奇怪???分析排查通过对方法内代码的debug调试,发现在跳出service方法后update语句sql才执行,这时候我就想到了spring的......
  • PostgreSQL 执行动态crosstab查询
    在本文中,我们将介绍如何在PostgreSQL中执行动态crosstab查询。crosstab查询是一种将行转换为列的查询方式,常用于生成交叉表格。使用动态crosstab查询可以根据查询结果自动调整生成的表格结构,使其更加灵活和可扩展。 什么是动态crosstab查询?动态crosstab查询是一种使用动态SQL......
  • 查询 id名 长度等
    variables{dwordcontextCAN=0x00010000;//报文名字dwordcontextLIN=0x00050000;//固定的dwordcontextMOST=0x00060000;dwordcontextFLEXRAY=0x00070000;dwordcontextBEAN=0x00080000;dwordcontextJ1708=0x00090000;dwordid;//报文ID......
  • C# mysql where in 查询时参数化的问题
    大家都知道写代码查询sql的时候是需要对传入的变量参数化的,否则就会有sql注入的风险具体的原因是拼接传入的字符串会被当做sql语句进行解析,如果在传入的参数上做点手脚,就会导致sql的执行超出预期,具有很大的安全隐患,比如当登陆时传入的sql语句是selectcount(*)fromtablewher......
  • Oracle多层子查询无法识别外层table
    selectsomething,somthingelse,(select*from(selectQUOTE_PRICEasold_pricefromprice_historywhereprice_history.part_no=article_table.part_noorderbyvalid_fromdesc)whererownum=1)fromarticle_tab......