我有以下表格: -
pc_assign(username,pc_name)
pc_detail(os_id,ipaddress,pc_name)
pc_configuration(pc_name,hw_serial_no,model_no)
hw_property(value,hardware,hw_serial_no)
bl_os(os_id, os_name,version)
我需要创建以下视图:-
pc_config(`username`,`pc_name`,`motherboard- model_no`,`cpu(GHz)`,`RAM(GB)`,`HDD(GB)`,`Montior`,`ip_address`,`OS`)
为此,我正在编写以下查询:-
CREATE ALGORITHM=UNDEFINED DEFINER= root
@ localhost
SQL SECURITY DEFINER VIEW pc_config2
AS select a
。username
作为username
,a
。pc_name
AS pc_name
,if(( p
. hardware
= 'motherboard'), c
. model_no
, NULL
) AS motherboard_model_no
,if(( p
. hardware
= 'cpu'), p
. value
, NULL
) AS cpu(GHz)
,if(( p
. hardware
= 'RAM'), p
. value
, NULL
) AS RAM(GB)
,if(( p
. hardware
= 'HDD'), p
. value
, NULL
) AS HDD(GB)
,if(( p
. hardware
= 'monitor'), p
. value
, NULL
) AS Montior
, d
. ip_address_192_168_1_
作为ip_address_192_168_1
,d
。os_id
ASOS
从 (((pc_assign
a
加入pc_detail
d
on(( a
. pc_name
= d
. pc_name
))) 加入pc_configuration
c
on(( d
. pc_name
= c
. pc_name
))) 加入hw_property
p
(( c
. hw_serial_no
= p
. hw_serial_no
)))
输出是: -
username pc_name motherboard_model_no cpu(GHz) RAM(GB) HDD(GB) Montior ip_address_192_168_1 OS
nitu.dhaka pc1 NULL 4.5 NULL NULL NULL 208 1
soha pc1 NULL 4.5 NULL NULL NULL 208 1
nitu.dhaka pc1 mboard NULL NULL NULL NULL 208 1
soha pc1 mboard NULL NULL NULL NULL 208 1
nitu.dhaka pc1 NULL 4.5 NULL NULL NULL 208 1
soha pc1 NULL 4.5 NULL NULL NULL 208 1
nitu.dhaka pc1 mboard NULL NULL NULL NULL 208 1
soha pc1 mboard NULL NULL NULL NULL 208 1
这里实际发生的是,当查询在主板前运行时,其所有对应的字段都将为空。这是由于 if(( p
. hardware
= 'motherboard'), c
. model_no
, NULL
) AS motherboard_model_no
The Null 在第二部分。是否有可能没有第二个选项的查询(比如这里的 null )
我想输出如下内容:- 用户名 pc_name 主板_型号_no cpu(GHz) RAM(GB) HDD(GB) Montior ip_address_192_168_1 OS nitu.dhaka pc1 mboard 4.5 NULL NULL NULL 208 1 soha pc1 mboard 4.5 NULL NULL NULL 208 1 And here我只插入了主板和 cpu 的值。如果我将为其他字段插入值,它将再次重复。我如何删除这些大量的 null