Показать имена клиентов, которые имеют учетные записи SQL Запрос Oracle 10G - PullRequest
0 голосов
/ 23 февраля 2020
create table customer
    (cust_id    integer     not null,
    cust_name   char(20)    not null ,
    cust_address    varchar2(200)   ,
    emp_id      integer     not null,
        constraint pk_customer primary key(cust_id)
    );
create table account
    (account_number integer     not null,
    account_balance number(8,2) not null,
    constraint pk_acount primary key(account_number)
    );

create table has
    (cust_id integer not null,
     account_number integer not null,
     constraint pk_has
       primary key(cust_id, account_number) )

alter table has
add constraint fk_account_has foreign key(account_number) 
references account(account_number);

alter table has 
add constraint fk_customer_has foreign key(cust_id) 
references customer(cust_id);

Q1 Показать имена клиентов, у которых есть счета

Q2 Показать имена клиентов с именами сотрудников, с которыми они имеют дело **

1 Ответ

0 голосов
/ 23 февраля 2020

Q1 - это простой поиск в cust_id в соединительной таблице has:

select c.cust_name
from customer c
where exists (select 1 from has h where h.cust_id = c.cust_id)

Это означает следующее: выберите клиентов, у которых есть хотя бы одна запись в таблице has.

Когда дело доходит до Q2: в ваших структурах данных нет признаков сотрудников (у нас есть только клиенты и учетные записи), поэтому на этот вопрос нельзя ответить, основываясь на предоставленной вами информации. Возможно, вы захотите задать для этого новый вопрос, предоставив образцы данных для соответствующих таблиц вместе с желаемыми результатами и вашей текущей попытки решения проблемы.

...