Sahip olduğum sorunu göstermek için bu basit örneği ekledim. Veritabanımın foo olduğunu söyle. MySQL, INNER JOIN'i bazı null olarak bile olsa çok sayıda sütun arasında nasıl yapılır.
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
Şimdi burada mesele
people.id
diğer sütunlarda her id eşleşen değilse ben boş değerler elde edilmesi. Bunun nedeni, kimliği olan kişilerin hepsinin yer, aile, gelir ... sütunlarında bulunmamasıdır. Yani,
Ne istediğinizden emin değil misiniz? Sadece aynı people.id ile tüm tablolarda bir giriş varsa bir satır dönmek istiyor musunuz? – Remy
Eğer doğru bir şekilde anladıysam, tüm kayıtları "People table" dan mı istiyorsun? Eğer evet ise o zaman 'LEFT JOIN' –