SQL-在多个表的多个列中查找缺少的条目
我有以下Oracle数据库概念:SQL-在多个表的多个列中查找缺少的条目,sql,oracle,plsql,Sql,Oracle,Plsql,我有以下Oracle数据库概念: 账户家庭标识列为账户家庭ID的表 Account\u Member表,标识列为Account\u Member\u ID,列为Account\u home\u ID Account\u Role表中包含Main\u ID和Support\u ID列,它们是表示*Account\u成员\u ID的值* VIP\u用户带有VIP\u ID的表,VIP\u ID是表示帐户成员ID的值 我需要找到那些帐户\家庭\ ID,其中关联的帐户\成员\ ID在主\ ID、支持
- 账户家庭标识列为账户家庭ID的表
- Account\u Member表,标识列为Account\u Member\u ID,列为Account\u home\u ID
- Account\u Role表中包含Main\u ID和Support\u ID列,它们是表示*Account\u成员\u ID的值*
- VIP\u用户带有VIP\u ID的表,VIP\u ID是表示帐户成员ID的值
CREATE TABLE Account_Household (
Account_Household_ID NUMBER PRIMARY KEY
);
INSERT INTO Account_Household
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 100;
CREATE TABLE Account_Member (
Account_Member_ID NUMBER PRIMARY KEY,
Account_Household_ID NUMBER,
FOREIGN KEY ( Account_Household_ID ) REFERENCES Account_Household ( Account_Household_ID )
);
INSERT INTO Account_Member
SELECT LEVEL, 2*LEVEL FROM DUAL CONNECT BY LEVEL <= 50;
CREATE TABLE Account_Role (
Main_ID NUMBER,
Support_ID NUMBER,
FOREIGN KEY ( Main_ID ) REFERENCES Account_Member ( Account_Member_ID ),
FOREIGN KEY ( Support_ID ) REFERENCES Account_Member ( Account_Member_ID )
);
INSERT INTO Account_Role
SELECT LEVEL, 2*LEVEL FROM DUAL CONNECT BY LEVEL <= 25;
CREATE TABLE VIP_User (
VIP_ID NUMBER,
FOREIGN KEY ( VIP_ID ) REFERENCES Account_Member ( Account_Member_ID )
);
INSERT INTO VIP_User
SELECT 3*LEVEL FROM DUAL CONNECT BY 3*LEVEL < 25;
| ACCOUNT_MEMBER_ID | ACCOUNT_HOUSEHOLD_ID |
|-------------------|----------------------|
| 27 | 54 |
| 29 | 58 |
| 31 | 62 |
| 33 | 66 |
| 35 | 70 |
| 37 | 74 |
| 39 | 78 |
| 41 | 82 |
| 43 | 86 |
| 45 | 90 |
| 47 | 94 |
| 49 | 98 |
:
CREATE TABLE Account_Household (
Account_Household_ID NUMBER PRIMARY KEY
);
INSERT INTO Account_Household
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 100;
CREATE TABLE Account_Member (
Account_Member_ID NUMBER PRIMARY KEY,
Account_Household_ID NUMBER,
FOREIGN KEY ( Account_Household_ID ) REFERENCES Account_Household ( Account_Household_ID )
);
INSERT INTO Account_Member
SELECT LEVEL, 2*LEVEL FROM DUAL CONNECT BY LEVEL <= 50;
CREATE TABLE Account_Role (
Main_ID NUMBER,
Support_ID NUMBER,
FOREIGN KEY ( Main_ID ) REFERENCES Account_Member ( Account_Member_ID ),
FOREIGN KEY ( Support_ID ) REFERENCES Account_Member ( Account_Member_ID )
);
INSERT INTO Account_Role
SELECT LEVEL, 2*LEVEL FROM DUAL CONNECT BY LEVEL <= 25;
CREATE TABLE VIP_User (
VIP_ID NUMBER,
FOREIGN KEY ( VIP_ID ) REFERENCES Account_Member ( Account_Member_ID )
);
INSERT INTO VIP_User
SELECT 3*LEVEL FROM DUAL CONNECT BY 3*LEVEL < 25;
| ACCOUNT_MEMBER_ID | ACCOUNT_HOUSEHOLD_ID |
|-------------------|----------------------|
| 27 | 54 |
| 29 | 58 |
| 31 | 62 |
| 33 | 66 |
| 35 | 70 |
| 37 | 74 |
| 39 | 78 |
| 41 | 82 |
| 43 | 86 |
| 45 | 90 |
| 47 | 94 |
| 49 | 98 |