多对多查询sql语句
Ⅰ 求一条多对多连表查询sql语句
selectt1.name,t1.comnum,t2.comadd
fromtable1ast1
leftjointable2ast2
ont2.name=t1.name
Ⅱ sql语句问题:多对多查询
SELECT [系列],[顾客]
FROM TABLENAME
GROUP BY [系列],[顾客]
Ⅲ 对多对,跨表查询,sql语句怎么写,急,在线等
最好把表结构提供一下。
1、以“表名一”为基准,将“表名多”中“字段”相同的行查出,“表名一”中有而“表名多”中不存在的就不显示:
select
要查询的字段
from
表名一,表名二
where
表名一.字段=表名多.字段
2、以“表名一”为基准,将“表名多”中“字段”相同的行查出,“表名一”中有的就都显示,“表名多”中没有的会显示为“NULL”
select
要查询的字段
from
表名一
left
outer
join
表名多
on
(
表名一.字段=表名多.字段)
Ⅳ sql多对多关系的两表如何联合查询出所有的结果
1、语句如下:
Select project.*, [contract].* from project
Left join contract_project on project.projectId = contract_project.projectId
Left join [contract] on contract_project.contractId = [contract].contractId
注:contract在Sql server中是关键字,因此使用了中括号。
2、使用Left join
Left join是以左表为准的。换句话说,左表(project)的记录将会全部表示出来,而右表(contract_project)只会显示符合搜索条件的记录
(例子中为: project.projectId = contract_project.projectId)。对于contract表来说,contract_project表是它的左表。
此例以两个left join 将三个表按条件联接在一起。
(4)多对多查询sql语句扩展阅读
连接通常可以在select语句的from子句或where子句中建立,其语法格式为:
selectcolunm_name1,colunm_name2
fromtable_name1
leftjointable_name2
ontable_name1.colunmname=table_name2.colunmname其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接称为自连接, join_type 为连接类型,可以是left join 或者right join 或者inner join 。
on (join_condition)用来指连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。
Ⅳ SQL 多对多查询语句
/*选择全部课程的学生列表:
select B.student,A.num_class
from
(
select count(*) as num_class from class
) A left outer join
(
select count(*) as num_class,student from cs
group by student
) B on A.num_class = B.num_class
/* 报名多过5门课程的学生列表
select A.student,B.num_class as num_class
from
(
select student from student
) A left outer join
(
select count(*) as num_class,student from cs
group by student
) B on A.student = B.student
where num_class >5
Ⅵ sql 多对多查询
select *
from
(select id,sum(money) as mm from a表 group by id) aaa,
(select id,sum(money) as nn from b表 group by id) bbb
where aaa.id=bbb.id and aaa.mm=bbb.nn;
-----------------------------
说明:
先用语句,得到aaa,bbb两个临时表,里面是(ID,钱的求和);
然后叠加一个查询,从表aaa,表bbb中,用条件,筛选出需要的记录(ID相等,钱求和相等);mm,nn是我为了字段查看方便,设置的两个临时字段名。
-----------------------------
如果你是用workbench,语句正确执行要写成一行。
Ⅶ sql语句多对多查询
select * from book a join (select cid,count(1) as [count] from category group by cid) b where a.id=b.cid
Ⅷ SQL 多对多查询
1、创建测试表,
create table test_task(taskID varchar2(20),taskName varchar2(200));
create table test_person(personID varchar2(20),personName varchar2(200));
create table test_task_person(taskID varchar2(20),personID varchar2(200));
Ⅸ SQL的一对多,多对一,一对一,多对多什么意思
1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
2、多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。
3、一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。
4、多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。
Ⅹ sql 语句如何实现多对多的模糊查询
oracle
select table1.col1,table2.col2
form table1 join table2 on instr(table1.col2 , table2.col1) <> 0
instr(str1,str2) 返回字符串str2在str1中的位置
如果是其他DB,你找一下相关函数替换下就行了