我正在研究医学软件。该软件向患者询问有关其症状的问题,并可以从中确定可能的病状。我的研究包括将软件发现的症状和病理与医院的症状和病理进行比较。
为了简化工作,我决定将数据输入到netbeans 8.2上用javadb创建的数据库中。
但是由于我的陈述不起作用,看来我做错了事。
在此先感谢您抽出宝贵的时间来帮助我。
SQL设计:
Create table Patients(
nip varchar(32) primary key,
sexe varchar(8) not null,
age int not null,
dateArrivee timestamp not null,
constraint ck_sexe check(sexe='Male' or sexe='Female'),
constraint ck_age check (age>=0)
);
Create table Symptoms(
symptomID int primary key generated always as identity (start with 1,
increment by 1),
nip varchar(32) not null,
symptom varchar(64),
origin varchar(16) not null,
foreign key (nip) references Patients(nip),
constraint ck_origin check (origin='SOFTWARE' or origin='HOSPITAL')
);
Create table Pathologies(
pathologyID int primary key generated always as identity (start with 1,
increment by 1),
nip varchar(32) not null,
pathology varchar(64),
origin varchar(16) not null,
foreign key (nip) references Patients(nip),
constraint ck_origin check (origin='SOFTWARE' or origin='HOSPITAL')
);
输入的值:
Insert into Patients values ('001','Male', 25, '2019-05-27 14:00:00');
Insert into Patients values ('002', 'Female', 30, '2019-05-26 15:00:00');
Insert into Symptoms values (, '001', 'Headache', 'SOFTWARE');
Insert into Pathologies values (,'001', 'Fever', 'SOFTWARE');
Insert into Symptoms values (,'001', 'Stomache', 'HOSTPITAL');
Insert into Pathologies values (, '001', 'Gastro-enteritis', 'HOSPITAL');
Insert into Symptoms values(,'002', 'Headache', 'SOFTWARE');
Insert into Pathologies values (,'002', 'Unknow', 'SOFTWARE');
SQL语句:
Select *
from (Patients inner join
Symptoms
on Patients.nip = Symptoms.nip
) inner join
Pathologies
on Symptoms.nip = Pathologies.nip
where Symptoms.origin = 'MEDVIR' and
Pathologies.origin = 'MEDVIR';
对不起,我忘了输入我遇到的错误。
SQL设计:
首先,我有一个关于auto_incrementation的错误,甚至认为这是个好方法。它说“生成”附近的语法不正确。
输入的值:
在这里,我遇到一个有关逗号(',')附近语法错误的错误。
SQL语句:
最后我有一个错误,说对象“患者”不可用。
答案 0 :(得分:0)
如果我没记错,您正在尝试获取“ Origin” =“ MEDVIR”的条目 虽然,您的insert语句都没有Origin为“ MEDVIR”
请在下面检查,
Select *
from (Patients inner join
Symptoms
on Patients.nip = Symptoms.nip
) inner join
Pathologies
on Symptoms.nip = Pathologies.nip
where Symptoms.origin IN ('SOFTWARE', 'HOSPITAL') and
Pathologies.origin IN ('SOFTWARE', 'HOSPITAL');
此外,您的某些INSERT语句在值前还有一个逗号,这将导致语法错误。