在表2中插入值

时间:2016-03-05 03:12:32

标签: mysql select insert

我需要一些帮助。

我必须在表格中将两个值插入“ hospital_database ”。此表有五列,称为“ personas ”。列的名称是“ cod_hospital(PK)”,“ DNI ”,“ Apellidos ”,“ Funcion “和” Salario “......我必须将” 99887766 “和”MartínezMartínez,Alejandro “插入” DNI < / strong>“和” Apellidos “,但根据问题,我必须插入”医院“,其中只有1个人......

我必须使用“insert + select”,我最后的努力就是:

insert into personas 
values (99887766, 'Martínez Martínez, Alejandro');
select dni, apellidos 
from personas 
where count(dni)=1;

我尝试了类似的东西,并尝试了很多方法......但它不像问题那样有效。我必须使用insert + select,所以我不应该写“;”在“选择”之前。

3 个答案:

答案 0 :(得分:1)

老实说,我还在猜这一点,但是如果该表中只有1行存在给定的医院代码,您可能打算在personas表中插入一行。为此,您需要将group byhaving

一起使用
insert into personas (cod_hospital, dni, apellidos)
select cod_hospital, 99887766, 'Martínez Martínez, Alejandro'
from personas 
group by cod_hospital
having count(*)=1

答案 1 :(得分:0)

插入有几个sintaxis,看起来你正在混合所有这些

一个是插入值http://www.w3schools.com/sql/sql_insert.asp

INSERT INTO table_name
VALUES (value1,value2,value3,...);

来自select的另一个插入 http://www.w3schools.com/sql/sql_insert_into_select.asp

INSERT INTO table2
SELECT * FROM table1;

如果您不包含所有字段,则必须指明要插入的字段

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

答案 2 :(得分:0)

cod_hospital是表的PK,每个医院只能插入一个人,将你的PK改为:cod_hospital,dni