Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL视图创建_Mysql - Fatal编程技术网

MySQL视图创建

MySQL视图创建,mysql,Mysql,我有两张桌子: parking_lot id name parking_spot id parking_lot_id available 我想创建一个如下所示的视图: parking_lot_view id name num_spots_available 为MySQL数据库创建此视图的查询是什么?这是一个简单的查询,因此我假设您对MySQL和数据库非常陌生。你一定要试着了解这是怎么回事,并深入研究这一主题: create

我有两张桌子:

parking_lot
    id
    name


parking_spot
    id
    parking_lot_id
    available
我想创建一个如下所示的视图:

parking_lot_view
    id
    name
    num_spots_available

为MySQL数据库创建此视图的查询是什么?

这是一个简单的查询,因此我假设您对MySQL和数据库非常陌生。你一定要试着了解这是怎么回事,并深入研究这一主题:

create view parking_lot_view as
    select pl.id, pl.name, sum(available) as NumAvailable
    from parking_spot ps join
         parking_lot pl
         on ps.parking_lot_id = pl.id
    group by pl.id, pl.name;

这假设
可用
在可用时为
1
,否则为
0

如果需要创建视图,首先创建一条Select SQL语句,将需要的任何表连接起来。然后您只需在开头添加“createview-AS”并执行

在您的特定情况下,这应该可以做到(我假设“available”是一个整数,其中0表示不可用,1表示可用,因为您在问题中没有指定):

创建停车场视图
选择L.id、L.name、计数(*)可用的\u点
从停车场L内部连接S上的停车场S。停车场id=L.id
其中S.0可用
按L.id、L.name分组
CREATE VIEW parking_lot_view AS
select L.id, L.name, count(*) available_spots
from parking_lot L inner join parking_spot S on S.parking_lot_id = L.id
where S.available <> 0
group by L.id, L.name