针对主表、从表 建视图问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:13:14
假设有:产品表Product,订单从表Order (每个产品的订单条数0..n)
P_ID P_NAME
------------

O_ID O_P_ID O_NAME
-----------------------

建一视图要求,
1)列出所有产品
2)并选出每个产品的两条订单记录(小于等于2),产品重复没关系

如果一条SQL能实现最好。

假设存在
P_ID P_NAME
-----------------
1 Test1
2 Test2

O_ID O_P_ID O_NAME
------------------------------
1 1 Order1_01
2 1 Order1_02
3 1 Order1_03
4 2 Order2_01
5 2 Order2_02
6 2 Order2_03
7 2 Order2_04

要求得到如下结果
P_ID P_NAME O_ID O_NAME
---------------------------------------
1 Test1 1 Order1_01
1 Test1 2 Order1_02
2 Test2 4 Order2_01
2 Test2 5 Order2_02

也就是说每个产品最多取两条订单

P.S.
我们一般采用如:select P_ID,P_NAME,O_ID,O_NAME from Product,Order where P_ID = O_P_ID;

现在用视图的单位越来越少了.....

改天看看。今天得加班。

顺便说一下:随便看一下
需求是产品表Product,订单从表Order
我觉得还要有一个表。

表示订单与产品的对应关系。
这样就能查一个订单有哪些产品,一个产品出现在哪些订单。
多了这一个表,就不会有冗余得数据了。

当然,也许你不需要这个需求。