LEFT OUTER JOIN
一致がない場合でも、a を使用して行を含めることができます。
SELECT documents.*, t_rights.rights, documents_list.docs
FROM documents
INNER JOIN t_rights on t_rights.num = documents.type_right
LEFT OUTER JOIN documents_list on
documents_list.num = documents.document1
WHERE code_document=1
これで、ドキュメントが のいずれにも一致しない場合でも、ドキュメントから行を取得できますdocuments_list
。 ただし、フィールドが空の不一致ドキュメントのみを含めたい場合があります。document1
その場合、もう少し必要になります。
SELECT documents.*, t_rights.rights, documents_list.docs
FROM documents
INNER JOIN t_rights on t_rights.num = documents.type_right
LEFT OUTER JOIN documents_list on
documents_list.num = documents.document1
WHERE code_document = 1 and (
documents_list.num is not null or
documents.document1 is null
)
これは、 nullの場合を除いdocument_list
て、 に一致するドキュメントのみを返します (「空」とは null を意味すると想定しました。そうでない場合は、独自の条件をそこに置きます)。document1