繁体   English   中英

使用LEFT OUTER JOIN建立查询结果

[英]Using LEFT OUTER JOIN to build query results

有三个这样的表:

store_stock:

ID   ItemWeaveType   ItemModel   Cost   Price   
7    3               4           10.00  15.00

store_item_weaves:

ID   WeaveID
3    MC

store_item_models:

ID   ModelID
4    HV

我正在尝试执行一个查询,以收集库存ID为7的商品的所有数据。作为最终结果,我想要一个数组:

Array ( [ID] => 7 [ItemWeaveType] => MC [ItemModel] => HV [Cost] => 10.00 [Price] => 15.00)

因此,我需要从表store_item_weavesstore_item_models加入数据。

这是我到目前为止的内容:

$query = $db->query("SELECT * FROM `store_stock` s 
left outer join `store_item_weaves` w on w.`ID`=s.`ItemWeaveType` 
left outer join `store_item_models` m on m.`ID`=s.`ItemModel`
where s.`ID`=7");

这将返回一个数组,如下所示:

Array ( [ID] => 7 [ItemWeaveType] => 3 [ItemModel] => 4 [Cost] => 10.00 [Price] => 15.00 [WeaveID] => MC [ModelID] => HV )

所以,我快到了。 而不是使用WeaveIDModelIDItemWeaveTypeItemModel ,而是将其添加到数组中。

有任何想法吗?

使用列列表而不是*来确保获得所需的值:

$query = $db->query("SELECT s.ID, w.WeaveId, m.ModelId, s.Cost, s.Price FROM `store_stock` s 
left outer join `store_item_weaves` w on w.`ID`=s.`ItemWeaveType` 
left outer join `store_item_models` m on m.`ID`=s.`ItemModel`
where s.`ID`=7");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM