来自不同表的多个 SELECTS MySQL

Multiple SELECTS from different tables MySQL

我有两个具有以下结构的表:

Table t1
||My_id|| ||A1|| ||A2|| ||B1|| ||B2||

* 以上两列都不是唯一的

Table t2
||My_id|| ||Info||

* My_idt2

中是唯一的

我想做一个单一查询,可以return以下内容:

||ABUnique|| ||Info||

其中:

到目前为止,我能够使用此查询获得 ABUnique

(SELECT DISTINCT `A1` AS `ABUnique` FROM `t1`)
UNION (SELECT `A2` FROM `t1`)
UNION (SELECT `B1` FROM `t1`)
UNION (SELECT `B2` FROM `t1`)
ORDER BY `ABUnique`

但不确定如何将 Info 也放入其中。

请注意,表格中的条目数不同。

谢谢!

我不是 100% 肯定这会起作用(UNION 查询有时可能有点挑剔,我的大脑不会费心去记住他们生气的每个地方)。

如果您在每个 UNIONed SELECT 的结果中包含 My_id,您应该能够将它们的结果加入到 t2 中:

SELECT abSubQ.`ABUnique`, t2.Info
FROM
((SELECT DISTINCT `A1` AS `ABUnique`, My_id FROM `t1`)
UNION (SELECT `A2`, My_id FROM `t1`)
UNION (SELECT `B1`, My_id FROM `t1`)
UNION (SELECT `B2`, My_id FROM `t1`)
) AS abSubQ
INNER JOIN t2 USING (My_id)
ORDER BY `ABUnique`
;

如果这不起作用,您应该能够在一个查询中创建和使用临时 table 到 "INSERT INTO tmp_blahblah ... SELECT" 联合,并在后续中使用临时 table加入查询。