ORACLE1.10 - 一对多
-- 一對多 (訂單order,訂單明細orderDetail)
-- 主從表
-- 訂單表
create table t_order (
?? order_id number primary key,
?? today date,
?? desk_num varchar2(10)
);
insert into t_order(order_id,today,desk_num)
values(1,to_date('2018-03-12','yyyy-MM-dd'),'A05');
?
insert into t_order(order_id,today,desk_num)
values(2,to_date('2018-03-12','yyyy-MM-dd'),'B04');
?
insert into t_order(order_id,today,desk_num)
values(3,to_date('2018-03-11','yyyy-MM-dd'),'B01');
?
commit
select * from t_order
?
?
-- 訂單明細表
drop table t_order_detail
create table t_order_detail(
?? id number primary key,
?? order_id number,? -- 關系
?? food_name varchar2(20),-- 食品名字
?? unit_name varchar2(20),-- 單位
?? price number(6,2),? --單價
?? nums number???????? --數量
);
?
insert into t_order_detail
(id,order_id,food_name, unit_name, price,nums)
values
(1,1,'麻婆豆腐','塊',1.5,12);
insert into t_order_detail
(id,order_id,food_name, unit_name, price,nums)
values
(2,1,'東坡肉','塊',15,3);
?
insert into t_order_detail
(id,order_id,food_name, unit_name, price,nums)
values
(3,2,'麻婆豆腐','塊',1.5,5);
insert into t_order_detail
(id,order_id,food_name, unit_name, price,nums)
values
(4,2,'上海青','斤',6.5,2);
insert into t_order_detail
(id,order_id,food_name, unit_name, price,nums)
values
(5,2,'香干火鍋肉','斤',16.5,2);
commit
?
select * from t_order
select * from t_order_detail
?
-- 今天賺了多少錢
select to_char(sysdate,'yyyy-MM-dd') from dual
-- 找出2張訂單ID
select order_id from t_order
where
to_char(today,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd')
?
select sum(price*nums) as 總收入 from t_order_detail
where order_id in(
?? select order_id from t_order
?? where
?? to_char(today,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd')
)
?
?
--本質:內關聯
select * from t_order,t_order_detail
where t_order.order_id=t_order_detail.order_id
?
--左關聯(左為主,右為輔)
select * from t_order
left join t_order_detail
on
t_order.order_id=t_order_detail.order_id
?
轉載于:https://www.cnblogs.com/wyj1212/p/8549496.html
總結
以上是生活随笔為你收集整理的ORACLE1.10 - 一对多的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【4】 Java基础 四
- 下一篇: 蓝牙的发展史及版本演进