2016-03-07 63 views
0

我已经搜索并且已经花费了很多时间用于此查询... 我想要的是我需要输出特定原材料的原材料名称,而其中一个列为空。我试过完全的外连接,但我不知道为什么phpmyadmin不接受我的查询我试过几乎所有我可以。如何在mysql中完全外连接

表:

purchaserequest_tbl

列:purchaserequestID,单编号,rawmaterialID,rawmaterialquantity

rawmaterial_tbl:

列:ID,名称,类别,单位

这里是查询

SELECT `purchaserequest_tbl`.`orderID` AS 'Order No', 
     `rawmaterial_tbl`.`rawMaterialName` AS 'Raw Material Name', 
     `purchaserequest_tbl`.`rawMaterialQty` AS 'Length (inches)' 
FROM `purchaserequest_tbl` 
LEFT OUTER JOIN `rawmaterial_tbl` 
ON `purchaserequest_tbl`.`rawMaterialID` = `rawmaterial_tbl`.`rawMaterialName` 
WHERE `purchaserequest_tbl`.`purchaseRequestStatus` = 'Requested' 

我希望有人能够帮助我..我真的有在这里

+0

对我来说看起来没问题。 – Strawberry

回答

1

很难如果我理解你,你发布查询为你工作,但并没有产生预期的结果。全外连接你没有工作,因为MySQL不支持全外连接,所以你必须做出2留在为了得到这个结果的外连接,试试这个:

SELECT `purchaserequest_tbl`.`orderID` AS 'Order No', 
     `rawmaterial_tbl`.`rawMaterialName` AS 'Raw Material Name', 
     `purchaserequest_tbl`.`rawMaterialQty` AS 'Length (inches)' 
FROM `purchaserequest_tbl` 
LEFT OUTER JOIN `rawmaterial_tbl` 
ON `purchaserequest_tbl`.`rawMaterialID` = `rawmaterial_tbl`.`rawMaterialName` 
WHERE `purchaserequest_tbl`.`purchaseRequestStatus` = 'Requested' 
UNION 
SELECT `purchaserequest_tbl`.`orderID` AS 'Order No', 
     `rawmaterial_tbl`.`rawMaterialName` AS 'Raw Material Name', 
     `purchaserequest_tbl`.`rawMaterialQty` AS 'Length (inches)' 
FROM `rawmaterial_tbl` 
LEFT OUTER JOIN `purchaserequest_tbl` 
ON `purchaserequest_tbl`.`rawMaterialID` = `rawmaterial_tbl`.`rawMaterialName` 
WHERE `purchaserequest_tbl`.`purchaseRequestStatus` = 'Requested' 

如果你只想要那些这是null,在两个where子句中都加上WHERE rightTable.Column为null

+0

非常感谢您的反馈,我的朋友。是的,我在查询生成器上使用它来尝试3个表jst使2个左外连接,它的工作! – Siege21x

+0

你的代码太棒了。现在我有另一种方式来思考查询!非常感谢你!!! – Siege21x