簡體   English   中英

查詢數據庫中的連接表

[英]Querying The Database for Join Tables

好的,我在這里有一個查詢。 (使用 Oracle SQL Developer)

SELECT OWNER, TABLE_NAME FROM ALL_TAB_COLUMNS, COLUMN_NAME WHERE COLUMN_NAME = 'ID1' OR COLUMN_NAME = 'ID2';

這使我的數據庫中的每個表都有ID1列或ID2列。 假設我有許多連接表, ID1ID2連接在特定表中,但ID1ID2也位於許多單獨的表中。

我將如何設置此查詢以選擇其中包含COLUMN_NAME的不同TABLE_NAME IE,查詢ID1ID2返回一個JOIN_TABLE1 ,但ID1ID3只返回JOIN_TABLE2 ,我沒有得到只有一個或另一個的共享表。

您可以使用相交

SELECT OWNER, TABLE_NAME 
FROM ALL_TAB_COLUMNS, COLUMN_NAME 
WHERE COLUMN_NAME = 'ID1'
INTERSECT 

SELECT OWNER, TABLE_NAME 
FROM ALL_TAB_COLUMNS, COLUMN_NAME 
WHERE COLUMN_NAME = 'ID2';

最常見的方法是聚合您的行和計數,因此您只需訪問該表一次:

select owner, table_name 
from all_tab_columns
where column_name in ('id1', 'id2');
group by owner, table_name
having count(*) = 2;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM