0
以下两个查询:结合了SELECT和UNION ALL
1.
SELECT idA, idB FROM tableA WHERE idA = 1;
2.
SELECT idB, value FROM tableB1 WHERE idB = <the idB result of query 1>
UNION ALL
SELECT idB, value FROM tableB2 WHERE idB = <the idB result of query 1>;
此刻我存储在第一查询结果一个变量,然后执行第二个查询seperatly,但我想结合这两个查询,所以我只需要执行一个查询。
查询1返回确切的一行,所以我们不会有多个idB
值。并且在tableB1
或tableB2
中只有一个条目与此特定的idB
值相匹配。
我似乎无法找到一种方法将这两个查询合并为一个,而不会在一个地方爆炸数据空间。例如,天真的方法:
SELECT
idA, idB
FROM
tableA a,
LEFT JOIN
(SELECT idB, value FROM tableB1
UNION ALL
SELECT idB, value FROM tableB2) b ON b.idB = a.idB
WHERE idA = 1;
这意味着我合并两个完整的表,这显然是一个矫枉过正。
对不起,整个删除/取消删除编辑,我虽然我有解决方案,但事实证明,它没有奏效。 –