我有3个表inputs
,posts
和posts_values
:
我需要获取所有带有值的输入,如果值不存在则获取null
喜欢(输入,值)
姓名:David,工作:开发人员,城市:NULL
答案 0 :(得分:2)
您需要LEFT JOIN
inputs
表,如下所示:
SELECT i.input_name, pv.value
FROM inputs as i
LEFT JOIN posts AS p ON i.form_id = p.id
LEFT JOIN post_values AS pv ON pv.b_id = p.id
AND pv.a_id = i.id;
这会给你:
| input_name | value |
|------------|-----------|
| name | David |
| job | Developer |
| city | (null) |
请注意:,我假设第三个表a_id
上的post_values
是id
表中inputs
列的外键,以便每个输入名称与值匹配。否则,您可能需要将此a_id
作为代理键,并添加其他外键input_id
。
您需要阅读有关SQL连接及其之间的区别的信息,请查看以下示例: