我正在尝试创建两个表的内连接MySQL查询:
'swatchset'
->swatchset_id
->swatchset_name
'swatches'
->swatch_id
->swatch_name
->swatch_hex
->etc...
我目前在' swatchset'表:
swatchset_id | swatchset_name
8 default
'''''桌子是空的。
我希望得到' swatchset'。' swatchset_name' 我想我不太了解INNER JOIN因为这个查询没有结果:
SELECT `swatchset`.`swatchset_name`, `swatches`.`swatch_id`, `swatches`.`swatch_name`, `swatches`.`swatch_hex`, `swatches`.`swatch_type` FROM `swatchset`
INNER JOIN `swatches`
ON `swatches`.`f_swatchset_id` = `swatchset`.`swatchset_id`
WHERE `swatchset`.`swatchset_id` = '8';
我怎样才能获得至少找到的' swatchset'行结果?
答案 0 :(得分:1)
左外连接将在未找到时填充第二个表的空列:
SELECT `swatchset`.`swatchset_name`, `swatches`.`swatch_id`, `swatches`.`swatch_name`, `swatches`.`swatch_hex`, `swatches`.`swatch_type` FROM `swatchset`
LEFT OUTER JOIN `swatches`
ON `swatches`.`f_swatchset_id` = `swatchset`.`swatchset_id`
WHERE `swatchset`.`swatchset_id` = '8';
内部联接不会从第一个表返回条目,而不会在第二个表中匹配