下面是相关联的两个表中为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。 –