Mysql 把两张桌子和所有东西连在一起

Mysql 把两张桌子和所有东西连在一起,mysql,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 我没有得到所有的表

我必须通过一个公共单元连接我想要得到两者的所有结果的表。问题是第二个表只有第一个表的一些记录

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

我没有得到所有的表格,因为没有该表格的记录。有没有人可以这样做?我会在records表中为上的每个窗体创建一个空白记录,但我也无法确定这一点。

这是一个完美的左外部联接应用程序。 例如:

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

在这些情况下使用左连接

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

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

例:

完全外部连接: 将包含表中的所有数据,不匹配的数据将为空

例:

这将引发一个错误列,因为\u id不明确。您必须使用别名指定列选择f.form\u id、f.description、f.image、f.dept、r.record\u id、r.form\u id作为record\u form\u id、r.comments、r.added\u date、r.done\u date FROM。。。或者甚至不查询r.form_id来减少通过网络传输的数据。无论如何,左连接是正确的。
SELECT * 
FROM forms
LEFT JOIN records ON  forms.form_id = record.form_id
SELECT * 
FROM forms
FULL OUTER JOIN records ON  forms.form_id = record.form_id