假设我有两张桌子,一张桌子是乘客,另一张桌子是卡。
create table passenger(
user_id char(20) not null unique,
name char(20),
age integer,
pin integer,
card_num char(20) unique,,
foreign key (card_num) references card);
create table card(
card_num char(20) primary key,
balance number(10,2),
cvn char(20) );
如果我想更新一位乘客的卡余额,SQL应该怎么写?非常感谢。
对于MySql,您需要像这样在UPDATE
语句中加入表:
update card c
inner join passenger p
on p.card_num = c.card_num
set c.balance = ?
where p.name = ?
并且对于Oracle:
update card c
set c.balance = ?
where c.card_num = (
select p.card_num
from passenger p
where p.name = ?
)
您的表“卡”应包含引用乘客的外键。 PassengerId(在您的情况下为user_id)作为外键。不是反过来
所以您的更新声明会像更新卡集余额=值WHERE user_id =值;