我试图结合这两个SQL查询。
SELECT * FROM `history` WHERE `ID` = 56
SELECT * FROM `live` WHERE `ID` = 56 AND `ACTIVE` = 0 AND t1.`Shown` = 'complete'
我试图做这样的事情:
SELECT t1.*,t2.*
FROM `history` t1
JOIN `live` t2
ON t1.`ID` = 56 AND t1.`ACTIVE` = 0 AND t1.`Shown` = 'complete'
WHERE t2.`ID` = 56
但是上面的查询导致从中选择所有内容live
而忘记了history
。
预期结果:我期望从选择所有列history
和live
其中ID is equal to 56
。但会有情形,其中ID's
在history
中不存在的live
-在这种情况下,我想从选择所有history
在ID
相等。
两个表都有不同的列。他们唯一的共同点是ID
。
解决方案:
Using UNION with specific columns from both tables.
如果history
和live
表具有相同的列数(最好是类型),则UNION
查询可能是您想要的:
SELECT * FROM `history` WHERE `ID` = 56
UNION ALL
SELECT * FROM `live` WHERE `ID` = 56 AND `ACTIVE` = 0 AND t1.`Shown` = 'complete'
如果列数不相同,则可以从两个表中选择相同的列数以使查询生效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句