2016-07-26 85 views
0

我有一个表Product and Classification和一个连接表Product_Classification。我写了一个查询来搜索表格。我注意到的一件事是,如果我有一个未映射到分类的产品记录(或分类),查询将不会返回任何内容。如何以这样的方式更改我的查询,即它还返回未映射分类的产品(以及未映射到产品的分类数据)。通过多个表进行搜索mysql

$query = "Select * from $dbname.Product P INNER JOIN Product_Classification PC ON P.ProductID = PC.ProductID INNER JOIN Classification C ON PC.ClassificationID = C.ClassificationID "; 

编辑:我有一个Where条件,这是场

数组
+1

使用左侧加入您的查询 –

+2

编辑您的问题并提供(1)样品数据和预期结果; (2)更完整的查询。 –

+0

'left join'将允许* right *表中的NULL值(在'from left_table left join right_table'中)我猜'outer join'可以提供你想要的。 – Jakumi

回答

0

使用此查询

Select * from $dbname.Product P INNER JOIN Product_Classification PC ON P.ProductID = PC.ProductID LEFT JOIN Classification C ON PC.ClassificationID = C.ClassificationID 
1

您可以使用此查询

$query = "Select * from $dbname.Product P LEFT JOIN Product_Classification PC ON P.ProductID = PC.ProductID LEFT JOIN Classification C ON PC.ClassificationID = C.ClassificationID "; 

如果您想要了解更多关于连接的信息,此链接将帮助您https://stackoverflow.com/a/4715847/6098214