首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何检索SQL中嵌套表的列

如何检索SQL中嵌套表的列
EN

Stack Overflow用户
提问于 2022-09-02 03:11:35
回答 2查看 47关注 0票数 0

这可能是一个基本问题,但是如何在使用NOT in函数时从内表中检索第2列?

例如,我有两个表Customer(Customer id,customername) Orders (订单id,Order date,customerid),这里的customer id是格式化的外键。

我正在写一个查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * 
from customer
where customerid not in (select case when '1' then substr(customerid,1,2)
                                     when '2' then substr(customerid , 1,3)
                                     else customerid 
                                     end  from Orders)

在此查询中,如何检索订单id和订单日期?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2022-09-02 11:27:42

试一试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select customer.*, orders.orderid, orders.orderdate 
from customer 
full outer join 
(
  select case when substr(customerid,1,2) = '1' then substr(customerid,1,2)
              when substr(customerid,1,3) = '2' then substr(customerid,1,3)
              else customerid 
         end as customid
         , orderid, orderdate
  from Orders
) orders on (customer.customerid = orders.customid)
where customer.customerid is null
;

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with customer as (
  select 'James' as name, '100' as customerid from dual 
  union all 
  select 'Mike' as name, '101' as customerid from dual 
  union all 
  select 'Steve' as name, '102' as customerid from dual 
  union all 
  select 'Nora' as name, '103' as customerid from dual 
),
orders as (
  select 1001 as orderid, TO_DATE('2020-06-01T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS') as orderdate, '100' as customerid from dual 
  union all 
  select 1002 as orderid, TO_DATE('2020-07-21T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS') as orderdate, '102' as customerid from dual 
  union all 
  select 1003 as orderid, TO_DATE('2020-07-22T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS') as orderdate, '2' as customerid from dual 
  union all 
  select 1004 as orderid, TO_DATE('2020-06-05T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS') as orderdate, '103' as customerid from dual 
  union all 
  select 1005 as orderid, TO_DATE('2020-06-05T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS') as orderdate, '101' as customerid from dual 
)
select customer.*, orders.orderid, orders.orderdate 
from customer 
full outer join 
(
  select case when substr(customerid,1,2) = '1' then substr(customerid,1,2)
              when substr(customerid,1,3) = '2' then substr(customerid,1,3)
              else customerid 
         end as customid
         , orderid, orderdate
  from Orders
) orders on (customer.customerid = orders.customid)
where customer.customerid is null
;

对我来说不太清楚的是你的客户身份格式化的外键。你能举几个例子吗?

票数 0
EN

Stack Overflow用户

发布于 2022-09-02 03:17:46

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select c.customerid, c.customername, o.id, o.date 
  from orders o, customer c 
 where not exists (select 1 
                     from orders o2 
                    where c.customerid = o2.customerid 
                      and o.id = o2.id);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73581666

复制
相关文章
使用SQL语句创建表_用sql语句创建员工表
create table 表名 (列1 数据类型 1,列2 数据类型) tablespace 表空间
全栈程序员站长
2022/11/19
4.1K0
使用SQL语句创建表_用sql语句创建员工表
SQL语句中创建表的语句_用sql创建表
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
全栈程序员站长
2022/11/03
4.7K0
SQL语句中创建表的语句_用sql创建表
SQL 基础-->创建和管理表
(列名 数据类型 [ default 默认值] [ 约束条件] [ , ......] )
Leshami
2018/08/07
9700
怎么创建数据表_sqlserver创建表的sql语句
知识点:数据库表的相关概念、创建数据库表的方法、设计数据库表、向数据库表中插入数据、建立不同数据库表之间的关系、删除数据库表。
全栈程序员站长
2022/11/17
3.2K0
怎么创建数据表_sqlserver创建表的sql语句
sql 创建表_sql server建表语句
在线Sqlite查看器|修改器 http://lzltool.com/sqlite-viewer
全栈程序员站长
2022/11/17
2.2K0
sql 创建表_sql server建表语句
SQL2012_创建数据库,创建表,表的内外链接
create table a1( aid int constraint PK_a primary key, age int check(age between 27 and 80), sex int check(sex in('M','F')), tel nvarchar(20) check(tel like'1[3,5,7,8][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') ) create table b2( f n
赵腰静
2018/03/09
1.9K0
oracle创建表空间的SQL语句
oracle创建表空间语句: create tablespace shopping –创建一个叫shopping的表空间 datafile ‘shopping.dbf’ –物理文件名 size 50m –大小 autoextend on –自动增长 next 50m maxsize 20480m –每次扩展50m,最大为20480m extent management local;
全栈程序员站长
2022/09/18
4.2K0
数据库中创建表的语句_创建基本表学生表的sql语句
在线Sqlite查看器|修改器 http://lzltool.com/sqlite-viewer
全栈程序员站长
2022/11/02
4.9K0
使用SQL语句创建表(建立基本表数据的sql语句是)
1.创建表的语法 create table 表名 (列1 数据类型 1,列2 数据类型) tablespace 表空间
全栈程序员站长
2022/08/02
3.4K0
使用SQL语句创建表(建立基本表数据的sql语句是)
hibernate自动建表
表结构和数据总是在程序执行的时候无端的修改,折腾了好长时间,查了很长时间hibernate的数据库映射文件和接口程序,始终没有发现有什么错误,到最后才发现了它!
似水的流年
2019/12/05
1.7K0
数据库建表规则_SQL创建数据表
建表语句的规范: 1.字段的设计 A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。   B. 数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是有不能太小, 上次监控系统里面的表 mon_tair_stat_detail_2012_1 的data_size 和 use_size定义的是int(15) 实际上最大长度是int(11) 只有bigint才有(15). 所以在建表的时候一定要预估这个字段最大的长度到底是多少。   C. 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT 的值来代替。   D. 少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用。
全栈程序员站长
2022/10/02
2.2K0
Excel VBA SQL Join Syntax ErrorExcel VBA SQL 连接语法错误
【问题标题】:Excel VBA SQL Join Syntax ErrorExcel VBA SQL 连接语法错误 【发布时间】:2015-09-24 00:08:56 【问题描述】:
matinal
2023/10/13
2510
菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
项目用的是SSH基础框架,当中有一些信息非常相似,但又不尽同样。假设每个建一个实体的话,那样实体会太多。假设分组抽象,然后继承,又不是特别有规律。鉴于这样的情况。就打算让用户自己配置要加入的字段,然后生成相应的表。
全栈程序员站长
2022/07/08
5600
菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
sql快速创建一张相同表结构的表
根据t_bond_basic_info表,创建表结构相同的表,取老表中的一部分字段t_bond_basic_info_new 后面的条件 where id>146000 创建的时候把id>146000的数据写到新表中,如果where 1<>1,只创建表结构,不把数据写进去
周小董
2019/03/25
3K0
oracle创建表的sql语句「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/03
1.3K0
hibernate sql查询_sql server查询命令
SQLQuery接口用于接受一个sql语句进行查询,然后调用list()或uniqueResult()进行查询。但是sql语句不会直接封装到实体对象里,需要手写代码才可以封装到实体中。
全栈程序员站长
2022/11/11
2.7K0
[Java]Srping Boot 让hibernate 自动创建的表是InnoDB引擎的设置
但是上面的配置,无法在MySQL 5.5 创建InnoDB 表的同时不出错,因此在MySQL5.5的时候 需要使用下面的配置
用户2353021
2020/05/11
8120
[Java]Srping Boot 让hibernate 自动创建的表是InnoDB引擎的设置
mybatis和hibernate的以及jpa区别_hibernate sql
hibernate和mybatis是当前流行的ORM框架。hibernate对数据库结构提供了较为完整的封装。mybatis主要着力点在于java对象与SQL之间的映射关系。
全栈程序员站长
2022/09/30
1.2K0
mybatis和hibernate的以及jpa区别_hibernate sql
clickhouse的sql语法功能1-创建库,创建表等
分布式引擎参数:服务器配置文件中的集群名,远程数据库名,远程表名,数据分片键(可选)。 下面是样例:
公众号-利志分享
2022/04/25
2K0
sqlserver语句创建表格_创建表的sql语句外键
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183704.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
2.2K0

相似问题

未创建Hibernate自动生成的SQL表。

10

hibernate未创建表

21

Hibernate Spring :表未创建[如果存在,则不成功:删除表]

13

未使用Hibernate创建表

21

Hibernate表未自动创建

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文