下面是相關聯的兩個表中爲mytable的每個條目的一個值的建議。即這是假設mytable不僅包含用於選擇輔助表的單個條目。 有關這意味着什麼的詳細信息,請參閱本答覆末尾的「MCVE」。
如果您想根據主表中的單個條目在兩個輔助表之間切換,請參閱此答案的最後部分。
詳情:
- 硬編碼「值1」 /「值2」作爲COLUMN1增加從輔助表
- 通過僞造colummn1和二級加盟鍵,這裏假定加盟飛結果
id
- 一個
union all
從兩個次表(包括假列1)
選擇使一個單一的表* from mytable left join (select'value1'as column1,* from table1 UNION ALL select'value2'as column1,* from table2) using(id,column1);
輸出(用於MCVE下面提供, 「AF」 從表1, 「AZ」 從表2):基於單一
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE mytable (column1 varchar(10), id int);
INSERT INTO mytable VALUES('value1',1);
INSERT INTO mytable VALUES('value2',2);
INSERT INTO mytable VALUES('value1',3);
INSERT INTO mytable VALUES('value1',4);
INSERT INTO mytable VALUES('value2',5);
INSERT INTO mytable VALUES('value2',6);
CREATE TABLE table2 (value varchar(2), id int);
INSERT INTO table2 VALUES('F',6);
INSERT INTO table2 VALUES('E',5);
INSERT INTO table2 VALUES('D',4);
INSERT INTO table2 VALUES('C',3);
INSERT INTO table2 VALUES('B',2);
INSERT INTO table2 VALUES('A',1);
CREATE TABLE table1 (value varchar(2), id int);
INSERT INTO table1 VALUES('a',1);
INSERT INTO table1 VALUES('b',2);
INSERT INTO table1 VALUES('c',3);
INSERT INTO table1 VALUES('d',4);
INSERT INTO table1 VALUES('e',5);
INSERT INTO table1 VALUES('f',6);
COMMIT;
對於兩個表之間進行選擇:
value1|1|a
value2|2|B
value1|3|c
value1|4|d
value2|5|E
value2|6|F
MCVE條目在主臺(在這種情況下 「mytable2」:
select * from table1 where (select column1 from mytable2) = 'value1'
union all
select * from table2 where (select column1 from mytable2) = 'value2';
輸出(與mytable2僅含有 'VALUE1'):
a|1
b|2
c|3
d|4
e|5
f|6
請更清楚地解釋你想要什麼。你有沒有表,不知道如何編寫查詢?或者你想設計表格,這樣他們可以很容易地被查詢? –
你的查詢毫無意義。什麼是myTable?樣本數據和期望的結果將有所幫助。 –
你需要動態的sql。 –