mysql左聯一對多 MySQL左連線多對一行

2021-10-18 08:30:59 字數 665 閱讀 5098

為了簡化我的問題:假設我有3個表.

rooms people things

id| name id | name | fk_rooms id | name | fk_rooms

1 | kitchen 1 | john | 1 1 | tv | 2

2 | bedroom 2 | mary | 2 2 | bed | 2

3 | andy | 1 3 | sink | 1

4 | laura| 1

現在我做的事情如下:

select r.name as room_name, p.name as name, t.name as thing from rooms r

left join people p on p.fk_rooms = r.id

left join things t on t.fk_rooms = r.id

在我的情況下,除了與「房間」表有多對一關係的少數人之外,這種情況完美無缺.因此,與「rooms」表相關的「people」和「things」的不同名稱相比,結果集中的新行不是,我希望只收到兩行:

1. kitchen, john, andy, laura, sink

2. bedroom, mary, tv, bed

r.id上的group by只會從每個表中選擇一行.任何幫助都非常感謝!

mysql一對多怎麼聚合多 mysql多對多

中間表跟兩張表都分別是一對多關係,中間表是多,兩張表分別是1.原因是乙個教師在中間表中可以有多個t id 教師t id 而乙個t id只能對應乙個教師。2.外來鍵可以是一對一的,乙個表的記錄只能與另乙個表的一條記錄連線,或者是一對多的,乙個表的記錄與另乙個表的多條記錄連線。1.一對多,在多的一方建立...

MySQL關係 一對多 一對一 多對多

將實體與實體的關係,反應到最終資料庫表的設計上,將關係分為三種 一對一,一對多 多對一 和多對多,所有的關係都是表與表之間的關係 一對一 一對一 一張表的一條記錄只能與另外一條記錄進行對應,反之亦然 id p 姓名 性別 年齡 身高 婚姻狀況 籍貫 家庭位址 緊急聯絡人 體重 表設計成以上這種形式 ...

mySQL 表關係 一對一 一對多 多對多

一對一 a中的乙個實體至多與b中的乙個實體相關聯,且b中的乙個實體也至多與a中乙個實體相關聯。1.一對一 one to one 每個實體的獨有屬性 區別於其他實體 如個人的郵箱,每個使用者的郵箱都是不同的,即使用者與郵箱之間的關係為一對一關係。使用者與購物行為,因為多個使用者都可以購物,則兩者為多對...