[英]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.