在复杂查询中使用连接

时间:2017-04-22 10:35:07

标签: sql sql-server database

我在下面有三个表customer_cars,bookings和replacement_parts广告:

CREATE TABLE customer_cars(
pk_car_id        NUMBER(11) NOT NULL,
car_plate_number VARCHAR2(15) NOT NULL
);

CREATE TABLE bookings(
pk_booking_id        NUMBER(11),
fk_car_id            NUMBER(11),
);

CREATE TABLE replaced_parts(
pk_parts_id          VARCHAR2(25),
fk_booking_id        NUMBER(11),
replaced_parts       parts_varray_type
);

CREATE OR REPLACE TYPE parts_type AS OBJECT (
name                VARCHAR2(25),
price               NUMBER(10),

);
/

CREATE TYPE parts_varray_type AS 
VARRAY(40) OF parts_type;
/

我正在尝试从汽车的parts_varray_type获取零件名称。我只有car_plate_number。使用此板号我想在customer_cars中找到pk_car_id,然后pk_car_if id应该与预订中的fk_car_id匹配以查找bookings_id。然后找到的预订ID应与replacement_parts中的fk_booking_id匹配,以获取parts_name。

INSERT INTO customer_cars (pk_car_id, car_plate_number)
VALUES(200000,'5651L');

INSERT INTO bookings(pk_booking_id, fk_car_id)
VALUES(700000,200000);

INSERT INTO replaced_parts (pk_parts_id, fk_booking_id, replaced_parts)
VALUES(700000,600000,
parts_varray_type(
parts_type('CLUTCH', 2000)));

上面是插入语句。现在使用板号'5651L'我想显示离合器,2000从零件parray类型。 就像是: 选择.. FROM ..(Usings加入或任何其他方法) 在哪里pk_car_id ='5651L';

它应显示零件varray类型的名称和价格。

0 个答案:

没有答案