Mysql 如何构造“的SQL视图”;存货;“为所有人”;商店“;同样地;分区“;?
我有一个PHP/MySQL应用程序,它包含以下表格: STORE: store_id(1), ... store_id(2), ... store_id(3), ... store_id(4), ... store_id(5), ... ZONE: zone_id(A), store_id(1) zone_id(A), store_id(2) zone_id(B), store_id(1) zone_id(B), store_id(3) zone_id(B), store_id(5) zone_id(C), store_id(4) zone_id(C), store_id(5) INVENTORY: inv_id, store_id, ... ... 商店: 门店标识(1)。。。 门店标识(2)。。。 门店标识(3)。。。 门店标识(4)。。。 门店标识(5)。。。 区域: 区域标识(A)、门店标识(1) 区域标识(A)、门店标识(2) 分区标识(B)、门店标识(1) 分区标识(B)、门店标识(3) 分区标识(B)、门店标识(5) 分区标识(C)、门店标识(4) 分区标识(C)、门店标识(5) 库存: 库存标识、门店标识。。。 ... 如您所见,一个商店可能位于多个区域中,但区域id+商店id必须是唯一的(即,商店可能只在一个区域中出现一次) 仅给出“门店id”,然后:Mysql 如何构造“的SQL视图”;存货;“为所有人”;商店“;同样地;分区“;?,mysql,view,Mysql,View,我有一个PHP/MySQL应用程序,它包含以下表格: STORE: store_id(1), ... store_id(2), ... store_id(3), ... store_id(4), ... store_id(5), ... ZONE: zone_id(A), store_id(1) zone_id(A), store_id(2) zone_id(B), store_id(1) zone_id(B), store_id(3) zone_id(B), store_id(5) zone
如何为与给定“门店id”相同区域中的所有门店创建库存视图?给定
门店id
(以下标识为?
),此查询将为您提供属于相同区域的所有其他门店:
您可以将其转换为子查询,并在中使用提取相应的库存:
select i.*
from inventory i
where i.store_id in (
select store_id
from zone z
where exists (
select 1
from zone z1
where
z1.zone_id = z.zone_id
and z1.store_id = ?
)
)
我假设您的意思是与商店位于同一区域
编写查询以选择存储区:
SELECT zone_id
FROM _
WHERE store_id = 'your_id'
我们将使用它作为内部查询
编写外部查询
CREATE VIEW _ AS
SELECT _
FROM _
WHERE store_id IN (Inner query) AND store_id <> 'your_id
创建视图作为
选择
来自
其中存储\u id(内部查询)并存储\u id'您的\u id
以获取同一区域中的所有门店
我将让您在外部查询的基础上进行任何连接和选择
CREATE VIEW _ AS
SELECT _
FROM _
WHERE store_id IN (Inner query) AND store_id <> 'your_id