我有以下表格: -
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@ localhostSQL SECURITY DEFINER VIEW pc_config2AS select a。username作为username,a。pc_nameAS 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_idASOS从 (((pc_assign a加入pc_detail don(( a. pc_name= d. pc_name))) 加入pc_configuration con(( 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