多對多查詢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,你找一下相關函數替換下就行了