sql 主表的一条记录对应附表的多条记录语句

sql 主表的一条记录对应附表的多条记录语句

像这种情况我们用到会有

union 语句

sql union 语法

select column_name(s) from table_name1
union
select column_name(s) from table_name2

join left语句

left join 关键字语法

select column_name(s)
from table_name1
left join table_name2
on table_name1.column_name=table_name2.column_name

where  子查询

select * from a b where a.id=b.id

来现,下面看一例子。

select xxxx from 主表 inner join 附表 on 主表.xxxx=附表.xxxx where xxxx

实例说明。

employees_china:
e_id e_name
01 zhang, hua
02 wang, wei
03 carter, thomas
04 yang, ming

employees_usa:
e_id e_name
01 adams, john
02 bush, george
03 carter, thomas
04 gates, bill

列出所有在中国和美国的不同的雇员名:

select e_name from employees_china
union
select e_name from employees_usa
结果
e_name
zhang, hua
wang, wei
carter, thomas
yang, ming
adams, john
bush, george
gates, bill

时间: 2024-10-26 17:20:09

sql 主表的一条记录对应附表的多条记录语句的相关文章

sql server 查找帅选后每个人的第一条记录

问题描述 sql server 查找帅选后每个人的第一条记录 各位师兄 我想建个view 但不知道怎么写sql 麻烦你们指点下 大恩不言谢 字段1 字段2 2 2013-08-01 2 2013-01-01 2 2012-05-01 1 2013-06-26 1 2013-02-01 3 2012-12-12 我要可以根据日期筛选出每个人的第一条数据 比如我输入日期 2013-07-01 结果是 2 2013-01-01 1 2013-06-26 3 2012-12-12 解决方案 如果是有要关

SQL Server某一数据表最多能存储多少条记录呢?

问题描述 SQL Server某一数据表最多能存储多少条记录呢? 解决方案 没有上限的,这是联机帮助上的原话: 每个表的行数: 受可用存储资源限制 这个可用资源受下面几个因素的影响: 1.你的磁盘剩余空间 2.你的数据文件所在的磁盘分区格式,FAT16只支持最大2G的数据文件,FAT32只支持最大4G的数据文件 3.你的SQL版本,如果你是用msde,则单个数据文件最大仅支持2G,其他版本的数据库最大支持32TB 4.你的表所在文件组的文件数解决方案二:只要机器够好,应该没有最大值,只是性能问题

sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张

问题描述 sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张 1C sql数据库 当一张表的内容添加一条时 写一个触发器 使其自动再生成一张表 但自动生成的表的名字需要是添加的这个表的一个字段的内容 比如说表中添加了一个成员的名字 需要自动生成的表的名字就是这个人名 解决方案 需求可以实现,但没有这么去做的,这个表里有10000条数据时,你生成1万张表???? 建议修改设计,改成其它的方案来实现 解决方案二: Sql Server数据库新增触发器里面可以通过select (

用hibernate在修改一条数据时没有覆盖旧的记录,反而添加了一条新纪录,怎么回事?

问题描述 用hibernate在修改一条数据时没有覆盖旧的记录,反而添加了一条新纪录,怎么回事? 我用的是mysql的数据库, jsp <%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML> <div class="fo

sql查询-sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容

问题描述 sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容 数据库是 sqlserver2008的环境. 是一个列变行的问题 ,请大师帮忙啊. 比如 table表中 字段: id name bianhao address shijian 1 张三 001 北京 2013-12-1 2 李四 001 北京 2013-12-1 最后显示的内容为: 字段: name1 name2 bianhao address shijian 张三 李四 001 北京 2013-12-1 合并

请问 sql 怎样 查询最接近某一值的3条数据?急急急!!!

问题描述 请问 sql 怎样 查询最接近某一值的3条数据?急急急!!! 请问 sql 怎样 查询最接近某一值的3条数据?求sql语句如1,2,6,9,120,150,160,查询最接近9的3条记录数值,既1,2,6急急急啊!!!!!!!!! 解决方案 select * from T a where (select count(*) from T where n<a.n) < 3 解决方案二: 给你个思路,将该值与其他的做减法运算,然后排序,取前三条 解决方案三: 你把9的前三个和后三个都取出来

SQL中遇到多条相同内容只取一条的最简单实现方法

SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项. 如下:表timeand 针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种 1.select time,max(total) as total,name from timeand group by time;//取记录中total最大的值 或 select time,min(

sql 的记录查询,去重,清空记录

1.distinct (str) 用户去掉重复记录,针对某个字段 返回的是不重复记录的条数,而不是不重复​记录的所有值 只能返回目标字段,无法返回其他字段​ select distinct (name)​ from tablename 2.group by 根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总​ select * from tablename group by name,age 查询满足name,age都不重复的记录​ 3.添加索引 给使用频繁的字段​添加一个索引

当我在JSP页面上动态的往数据库里插入数据时,在页面上显示新插入的记录的时候,该条记录总是显示在最后一条,怎么做才能让刚刚新插入的记录显示在最前面?

问题描述 在数据库中往外读取数据时,在页面上用表格显示是按照数据表里的ID号依次往下排的,当我在JSP页面上动态的往数据库里插入数据时,在页面上显示新插入的记录的时候,该条记录总是显示在最后一条,怎么做才可以让刚刚新插入的记录显示在JSP页面最前面,也就是显示在第一条的位置上?(用的是表格显示数据) 解决方案 解决方案二:你查询的时候按ID降序获得结果集这样不就可以了解决方案三:引用1楼zn85600301的回复: 你查询的时候按ID降序获得结果集这样不就可以了 只有引用的内容不允许回复!解决方