加入两张桌子

时间:2012-05-29 20:51:58

标签: mysql

我必须使用表格来获取通过公共单元格连接的所有结果。问题是第二个表只有第一个表的一些记录。

Table 1 forms
form_id, description, image,dept

Table 2 records
record_id, form_id, comments, added_date, done_date

如果做这样的查询:

SELECT * FROM form
JOIN records ON record.form_id = form.form_id

我没有获得所有表格,因为该表格没有记录。有没有做过这样的事情?我会在记录表中为每个表单创建一个空白记录,但我也无法解决这个问题。

3 个答案:

答案 0 :(得分:2)

这是LEFT OUTER JOIN的完美应用。
示例:

SELECT f.*, r.*
FROM   form f
       LEFT JOIN records r
       ON r.form_id = f.form_id
ORDER BY f.description, r.added_date;

答案 1 :(得分:0)

对这些情况使用左连接

SELECT * FROM form
LEFT JOIN records ON record.form_id = form.form_id

答案 2 :(得分:0)

请检查你需要哪一个 - LEFT OUTER JOIN: 将包括左侧表中提到的所有记录和右侧表中的匹配记录,未匹配的记录将为空

前:

SELECT * 
FROM forms
LEFT JOIN records ON  forms.form_id = record.form_id

FULL OUTER JOIN: 将包括来自table和unmatched的所有数据都为null

前:

SELECT * 
FROM forms
FULL OUTER JOIN records ON  forms.form_id = record.form_id
相关问题