簡體   English   中英

一個查詢到另一個查詢的結果

[英]Result of one query into another query

我有兩個表TABLE_A,列名稱為COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5,並且其中有數據

abc def ghi jkl mno

123456789001121

名稱為COLUMN6 COLUMN7的TABLE_B ,其數據為

欄5 124

COLUMN4 bca

COLUMN3 aaa

COLUMN5 bbb

所以我將Table_A的列名作為table_B中的數據

所以我想在一個查詢中做這樣的事情

$ query1 =從TABLE_B中選擇COLUMN6,其中COLUMN7 ='aaa';

$ query2 =從TABLE_A中選擇$ query1,其中COLUMN1 ='123';

謝謝

您需要具有一個值以從表a->匹配到表B,如果看起來像這樣:

TableA-> ID,名稱
TableB-> id,table_a_id,名稱

此查詢將起作用:

SELECT a.name, b.name
FROM tableA as a
JOIN tableB as b ON a.id=b.table_a_id AND b.name='123'
WHERE a.name='aaaa'

為了獲得表A和B的名稱。我在這里使用別名作為表名,以使其更易於閱讀。 我希望通過這個例子,可以回答您的問題。

如果您沒有任何匹配的值,但是希望所有列都交叉,則可以執行以下操作:

SELECT a.name, b.name
FROM tableA a, tableB b
WHERE a.name='aaa' AND b.name='123'

您可以使用CASE或DECODE來做到這一點:

select a.* from tableA a, tableB b
WHERE
b.column7 = 'aaa'
and case
when b.column6 = 'COLUMN1' then a.column1
when b.column6 = 'COLUMN2' then a.column2
when b.column6 = 'COLUMN3' then a.column3
when b.column6 = 'COLUMN4' then a.column4
when b.column6 = 'COLUMN5' then a.column5
else null end = '123' -- condition for tableA

您最多可以使該語句達到1000列(ORACLE硬限制):)

暫無
暫無

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

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