SQL一對多表關聯查詢,sql多對多關係的兩表如何聯合查詢出所有的結果?

2021-10-05 03:26:22 字數 2622 閱讀 3083

1樓:匿名使用者

補充:....這個,感覺樓主的語句不用寫成這樣詭異的,你可以試試下面的語句符不符合你的要求

select * from table1 a,table 2 b where a.name=b.name;

這樣不就行了麼??

可以給多一點資訊麼??具體你想返回什麼呢??

是這樣麼?

table1符合的記錄欄位 table1所對應的很多table2

的中的一個記錄 欄位

** ++++++

** ++++++

** ++++++

** ++++++

如果是這樣的話,table2應該是儲存有關交易的資訊的吧,那麼應該有一個唯一標識的編號,型別為數值,越新的記錄,編號越大,設這個編號為id 那麼可以用以下方法,達到你想要的效果

select * from table1,table2 where table2.id in (

select max(id) from table2 group by name) and table1.name

=table2.name;

強烈建議不要使用日期欄位作唯一標識,如果沒有以上所說的id列,會麻煩許多

2樓:匿名使用者

select * from table1 a,table 2 b where a.name=b.name;

3樓:匿名使用者

select * from table1 a where exists (select name,max(datefield) from table2 where table2.name=a.name )

sql多對多關係的兩表如何聯合查詢出所有的結果?

4樓:城春許木深

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 將三個表按條件聯接在一起。

擴充套件資料

連線通常可以在select語句的from子句或where子句中建立,其語法格式為:

select colunm_name1,colunm_name2

from table_name1

left join table_name2

on table_name1.colunmname=table_name2.colunmname

其中join_table指出參與連線操作的表名,連線可以對同一個表操作,也可以對多表操作,對同一個表操作的連線稱為自連線, join_type 為連線型別,可以是left join 或者right join 或者inner join 。

on (join_condition)用來指連線條件,它由被連線表中的列和比較運算子、邏輯運算子等構成。

5樓:匿名使用者

通過contract_project做中間表就行:

select *

from contract_project aleft join project b on a.projectid = b.projectid

left join contract c on a.contractid = c.contractid

前提是contract_project要大而全,包含所有的pid和cid,不然不行

6樓:匿名使用者

看的頭暈啊,呵呵,難的想

sql兩張表一對多如何查詢?

7樓:

select goods.trumbnail

from goods

left join picture on goods.picture = picture .id

8樓:陽光上的橋

select a.trumbnail, b.url, c.url

from goods a, picture b, picture c

where a.picture=b.id and a.picture=c.id

mybatis能執行一對一,一對多的關聯查詢嗎

寫了關聯的話 可以通過是否延遲載入自動查詢 可以一次呼叫即可 如果不寫關聯的話 查詢的時候需要手動寫上多次呼叫不同的查詢的語句 mybatis能執行一對一,一對多的關聯查詢嗎 可以用語句 copyselect from students,不過新手我還是建議不bai要寫關聯,直接 du把resultm...

SQL怎樣把表的資料拆分,形成多對多關係例子如下

insert into 表3 select 表1.發票名,表1.金額,表2.收款單名 from 表1,表2 where 表1.發票名 表2.發票名 你要生成哪張表,是表3嗎?還是另外一張表 如何把多對多關係的表拆分成兩張一對多的表 資料庫 通過sqlserver2000的嚮導來建立多個表的檢視。這樣...

資料庫查詢一對多關係,只列出一條資料

select aaa.bbb.name as bbb name from table3 ccc left join table1 aaa on aaa.id ccc.table1 id left join table2 bbb on bbb.id ccc.table2 id where 1 1 應該...