【问题标题】:Inserting new customer into table using subquery使用子查询将新客户插入表中
【发布时间】:2021-07-14 17:35:48
【问题描述】:

插入收货地址为“yknhl fr hluhw”的客户 Jake Smith,可以通过 '1236548780' 和 'jakesmith@email.com' 联系到他(使用子查询从 shipping_details 表中获取地址,直接插入地址将被标记为不正确)。

^作业问题的说明

use assignment;   
insert into customers(first_name,last_name,email,phoneNo)    
values ('Jake','Smith','jakesmith@email.com','1236548780');
where shipping_detail_id in (select shipping_details.address from shipping_details where address like 'yknhl fr hluhw');

我在第 4 行做错了什么,所以我可以成功地将新客户添加到表中。我感到困惑,不知道从那里去哪里

【问题讨论】:

  • 在这个问题本身中更新您的 SQL 脚本,而不是标记屏幕截图。

标签: mysql subquery sql-insert


【解决方案1】:

一个 s你可以在ÌNSERT INTOdefinition看到

没有WHERE 子句,UPDATE 有一个

但你可以使用

use assignment;   
insert into customers(first_name,last_name,email,phoneNo,shipping_detail_id)    
SELECT('Jake','Smith','jakesmith@email.com','1236548780', shipping_detail_id)
 from shipping_details where address like 'yknhl fr hluhw'
 LIMIT 1;

use assignment;   
insert into customers(first_name,last_name,email,phoneNo,shipping_detail_id)    
VALUES ('Jake','Smith','jakesmith@email.com','1236548780', (SELECT shipping_detail_id
 from shipping_details where address like 'yknhl fr hluhw'
 LIMIT 1));

LIMIT 1 是在该地址有多个 id 的情况下,您应该添加一个 ORDER BY 以获得正确的一个

【讨论】:

  • 非常感谢您的解释!对比一下你的 SQL 和我的 SQL,我现在理解得更好了
  • 好的,请不要忘记accept the answer
猜你喜欢
  • 1970-01-01
  • 2015-01-03
  • 2018-11-04
  • 2015-08-10
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多