首页 > 解决方案 > 我可以使用未知数据根据另一个表中的数据更新 SQL 表吗?

问题描述

我正在制作一个访问 MySQL 数据库的 NetBeans Servlet;并根据 HTML 文本字段更新数据。如果邮件和密码(在 user_data 中)存在,我需要更新用户表中的某些名称和颜色;但是我不知道怎么做。

在小服务程序中

Statement st = (Statement) conexion.createStatement();
ps = conexion.prepareStatement("***Where I need the answer***")
ps.setString(1, name);
ps.setString(2, color);
ps.setString(3, mail);
ps.setString(4, password);
ps.executeUpdate();

在 MySQL 中

create table if not exists user(
id_user int(6) not null primary key auto_increment,
mail nvarchar(40),
password nvarchar(20));

create table if not exists user_data(
id_user int(6),
name varchar(40),
color varchar(6),
grade float(2,1),
foreign key (id_user) references usuarios(id_user)
on delete cascade on update cascade);

标签: mysqlsqlsql-update

解决方案


怀疑您正在寻找:

update user_data ud
set name = ?, color = ?
where exists (
    select 1 
    from user u 
    where u.id_user = ud.id_user and u.email = ? and u.password = ?
)

推荐阅读