我想這個查詢是一個基本的,我應該知道更多關於SQL,但沒有做很多與連接,但我認爲這是解決方案。如何合併2個SQL表中的行而不重複行?
我所擁有的是一張人們的桌子和他們所擁有的工作角色表。一個人可以有多個工作,我希望有一組結果,每個人包含他們的詳細信息和工作角色。
兩個示例表(people和job_roles)在下面,因此您可以更容易地理解問題。
人民
id | name | email_address | phone_number 1 | paul | [email protected] | 123456 2 | bob | [email protected] | 567891 3 | bart | [email protected] | 987561
job_roles
id | person_id | job_title | department 1 | 1 | secretary | hr 2 | 1 | assistant | media 3 | 2 | manager | IT 4 | 3 | finance clerk | finance 4 | 3 | manager | IT
讓我可以輸出的每個人,像這樣的
Name: paul Email Address: [email protected] Phone: 123456 Job Roles: Secretary for HR department Assistant for media department _______ Name: bob Email address: [email protected] Phone: 567891 Job roles: Manager for IT department
自己的角色所以,我怎麼會得到每個人的信息(從人員表格)和他們的工作細節(從job_roles表格)輸出到上面的例子。我想這可能是某種將他們的工作和相關部門合併成一個可以分割輸出的工作列的方式,但也許有更好的方法,sql會是什麼樣子?
感謝
保羅
PS這將是一個MySQL數據庫,如果有什麼差別
感謝這是我最終使用的,它運作良好。 – AdrenalineJunky 2010-07-22 08:21:51
這是非常聰明和方便的知道,但我仍然喜歡在PHP中進行正常的連接和格式化數據。如果您想要更改格式(例如,在作業角色之間添加
),您必須修改SQL查詢。 GROUP_CONCAT刪除了數據庫邏輯和表示的分離。這也使得單元測試更加困難。 – dave1010 2010-07-27 12:20:40