我有两张 table
tableA (id,randomNumber) (2,1),(3,5),(3,2),(6,0),(8,0),...
tableB (id,randomNumber2) (0,2),(1,3),(2,0),(4,2)...
现在我想从两个表中获取 ID、randomnumber 和 randomnumber2,其中 ID IN (0,1,2,3)。
所以应该返回:
(2,1), (3,5), (3,2), (0,2), (1,3), (2,0)
我尝试使用 JOIN 和 LEFT JOIN 进行构造。
问题是当 ON 子句 (JOIN tableB b on a.id=b.id) 不正确时,它会为 id 返回 NULL。但我还需要知道 NULL 值。例如,对于 tableB,它将返回 (NULL,2) 作为第一个结果。
(2,1), (3,5), (3,2), (NULL,2), (NULL,3), (2,0)
我怎样才能得到 NULL 值,我应该使用其他东西吗?
最佳答案
JOIN
在表具有相关数据时使用。在这里,2 个表彼此无关。更好的选择是使用 UNION
。
SELECT id, randomNumber
FROM tableA
WHERE ID IN (0,1,2,3)
UNION ALL
SELECT id, randomNumber2
FROM tableB
WHERE ID IN (0,1,2,3)
或者,只需使用 2 个单独的查询并合并结果。
关于php - JOIN 和 ON 子句(NULL 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811960/