MySQL 创建 Tables/Views
MySQL create Tables/Views
我不知道标题是否正确,但我的问题来了。
因此,我想使用来自几个 tables 的数据在 phpmyadmin 中创建视图(下图),代表 lamps 维护的视图具有来自几个 tables 的字段(变电站,post_type, 区域, lamp_type, 故障与维护)
这里有 table 个连接:
我以某种方式管理并创建了类似这样的东西(下图),我设法使用这段代码创建了它:
CREATE OR REPLACE VIEW
v_lamp_I
AS
SELECT
lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id
INNER JOIN maintenance ON maintenance.lamps_id = lamps.id
我已经设法创建了视图,但问题在于该视图我只能看到维护的 rows/lamps(sifra_lampe),只有 4 个。在 table lamps
我有 24 个条目,maintenance.But 只有 4 个条目,我想查看所有 24 个条目,如果那个特定的 lamp 没有维护,字段可以为空,日期格式为 (00-00 -00 或者它可以是 NULL) 并且对于维护的 entries/lamps 我想成为可见的日期字段。
这是 table lamp 的条目。
这里是带有维护日期的视图。如您所见,只有 6 个条目
我想查看其余条目,对于未维护的 lamps,条目可以为空或日期格式(00-00-00),对于 lamps维护的日期格式可以保持不变,简而言之,我想查看所有条目,而不仅仅是维护的条目。谢谢你,很抱歉问了这么长的问题。我不知道如何构建有意义且简短的问题,所以写下了所有内容。
CREATE OR REPLACE VIEW
v_lamp_I
AS
select tbl_lamp.*,DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main
from (SELECT lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id) as tbl_lamp
LEFT JOIN maintenance ON tbl_lamp.id = maintenance.lamps_id
create or replace view
v_lamp_I as
SELECT lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id;
CREATE OR REPLACE VIEW
v_lamp_new
AS
select v_lamp_I.*,DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main
from v_lamp_I
LEFT JOIN maintenance ON v_lamp_I.id = maintenance.lamps_id;
我不知道标题是否正确,但我的问题来了。 因此,我想使用来自几个 tables 的数据在 phpmyadmin 中创建视图(下图),代表 lamps 维护的视图具有来自几个 tables 的字段(变电站,post_type, 区域, lamp_type, 故障与维护)
这里有 table 个连接:
我以某种方式管理并创建了类似这样的东西(下图),我设法使用这段代码创建了它:
CREATE OR REPLACE VIEW
v_lamp_I
AS
SELECT
lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id
INNER JOIN maintenance ON maintenance.lamps_id = lamps.id
我已经设法创建了视图,但问题在于该视图我只能看到维护的 rows/lamps(sifra_lampe),只有 4 个。在 table lamps 我有 24 个条目,maintenance.But 只有 4 个条目,我想查看所有 24 个条目,如果那个特定的 lamp 没有维护,字段可以为空,日期格式为 (00-00 -00 或者它可以是 NULL) 并且对于维护的 entries/lamps 我想成为可见的日期字段。
这是 table lamp 的条目。
这里是带有维护日期的视图。如您所见,只有 6 个条目
我想查看其余条目,对于未维护的 lamps,条目可以为空或日期格式(00-00-00),对于 lamps维护的日期格式可以保持不变,简而言之,我想查看所有条目,而不仅仅是维护的条目。谢谢你,很抱歉问了这么长的问题。我不知道如何构建有意义且简短的问题,所以写下了所有内容。
CREATE OR REPLACE VIEW
v_lamp_I
AS
select tbl_lamp.*,DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main
from (SELECT lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id) as tbl_lamp
LEFT JOIN maintenance ON tbl_lamp.id = maintenance.lamps_id
create or replace view
v_lamp_I as
SELECT lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id;
CREATE OR REPLACE VIEW
v_lamp_new
AS
select v_lamp_I.*,DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main
from v_lamp_I
LEFT JOIN maintenance ON v_lamp_I.id = maintenance.lamps_id;