我正在處理一個包含人員的MySQL數據庫。我的問題是,(我將簡化,使我的觀點):簡單的MySQL問題
我有三個表:
Persons(id int, birthdate date)
PersonsLastNames(id int, lastname varchar(30))
PersonsFirstNames(id int, firstname varchar(30))
id是公共密鑰。對於姓氏和名字,有單獨的表格,因爲一個人可以有許多名字和許多姓氏。
我想做一個查詢,返回所有人,比如說,一個姓。如果我有
select birthdate, lastname, firstname from Persons, PersonsLastNames,
PersonsFirstNames where Persons.id = PersonsLastNames.id and
Persons.id = PersonsFirstNames.id and lastName = 'Anderson'
去我最終喜歡
1/1/1970 Anderson Steven //Person 1
1/1/1970 Anderson David //Still Person 1
2/2/1980 Smith Adam //Person 2
3/3/1990 Taylor Ed //Person 3
當呈現這樣的表,我想有
1/1/1970 Anderson Steven David
2/2/1980 Smith Adam [possibly null?]
3/3/1990 Taylor Ed [possibly null?]
如何加入表推陳出新結果集中的列是否需要爲一個人保存幾個名字或姓氏?
這是什麼實際應用?一個人什麼時候有多個姓和名?由於你描述的關係是多對多的,所以你要找的結果可以有任意數量的列。 – Ken 2009-12-23 02:10:40
@Ken - 它可以存在於「已知別名」意義上。 – Dereleased 2009-12-23 02:22:10
您可能會考慮將此問題重命名爲「MySQL - 如何從JOIN返回動態列?」幫助未來的人們尋找類似的問題。 – philfreo 2009-12-23 02:27:12