我已經添加了這個簡單的例子,以顯示我遇到的問題。說這是我的數據庫foo。MySQL如何跨多列進行INNER JOIN,即使某些列爲空。
SELECT
`people`.`id`
, `people`.`name`
, `places`.`place_type`
, `places`.`aread`
, `family`.`family_count`
, `income`.`income_value`
, `income`.`average`
, `employment`.`address`
, `employment`.`duration`
FROM
`people`
INNER JOIN `places`
ON (`people`.`id` = `places`.`id`)
INNER JOIN `family`
ON (`people`.`id` = `family`.`id`)
INNER JOIN `income`
ON (`people`.`id` = `income`.`id`)
INNER JOIN `employment`
ON (`people`.`id` = `employment`.`id`) WHERE `people`.`full_name` = ? LIMIT 1
現在,這裏的問題是,我得到空值,如果people.id
沒有在其他列中的每個ID匹配。這是因爲並不是所有的身份證號碼都在地方,家庭,收入......列中找到。 所以,我想知道怎麼總是返回從people.id
一個值,即使例如people.id
不一樣的說.. income.id
不確定你想要什麼?如果所有表中都有相同的people.id條目,那麼是否只想返回一行? – Remy
如果我理解正確,你想從'人桌'的所有記錄嗎?如果是的話,請使用'LEFT JOIN' –