Php mySQL完全外部联接与内部联接?
我不知道最好的方法是什么,甚至不知道是否可能。假设我有4个表、类别、文档、其他文档,更多文档只有文档有一个类别,其他文档没有。我正在使用MySQL和PHP。我知道在mysql中完全外部连接不是一个选项,必须使用左连接和右连接来解决 我可以得到所有的文件和内部加入他们的id匹配的类别,太棒了 现在我有了上面的数据集,我还想要其他的_文档和更多的_文档“添加”到上述结果集的底部,并在类别不对齐的地方填充空值 假设在more_documents表中有一个文档和其他_documents表没有的唯一列。例如,phil和dave将数据提交到documents和其他_documents表中,而jon只将数据提交到more_documents表中,因此结果将为: Id-标题-出版商-类别-唯一的“更多文档”列 1-doc1-dave-global-null 2-doc2-phil-hr-null 3-doc3-dave-operations-null 4-doc4-dave-global-null 5-doc5-jon-global-12345Php mySQL完全外部联接与内部联接?,php,mysql,Php,Mysql,我不知道最好的方法是什么,甚至不知道是否可能。假设我有4个表、类别、文档、其他文档,更多文档只有文档有一个类别,其他文档没有。我正在使用MySQL和PHP。我知道在mysql中完全外部连接不是一个选项,必须使用左连接和右连接来解决 我可以得到所有的文件和内部加入他们的id匹配的类别,太棒了 现在我有了上面的数据集,我还想要其他的_文档和更多的_文档“添加”到上述结果集的底部,并在类别不对齐的地方填充空值 假设在more_documents表中有一个文档和其他_documents表没有的唯一列。例
6-doc6-jon-hr-12345您想用“驱动程序”子查询构造查询:
select driver.Id, driver.Title, driver.publisher, c.category
from ((select id, categoryId, Title, publisher
from documents
) union
(select id, NULL, Title, publisher
from more_documents
) union
(select id, NULL, Title, publisher
from other_documents
)
) driver left outer join
category c
on driver.category_id = c.categoryId
请注意,union
用于driver
子查询,因为它会删除重复项
您可能需要额外的连接返回到文档表,以拾取仅在一个表中的字段。您好,Gordon,谢谢您提供的有用答案,我现在已经接近我所需要的了,但是我;m无法看到此语句的SELECT部分中的c.category在查询中实际执行的操作?你能澄清一下它的作用吗?感谢You@twigg . . . “类别”在问题的样本数据中。