在多个mysql表中搜索每个表中相同的2个字段

在多个mysql表中搜索每个表中相同的2个字段

我试图弄清楚如何在 mysql 表中搜索相同的 2 个字段。我所拥有的是同一个数据库中的两个表。以下是我目前拥有的:-

单一搜索工作正常

SELECT *  FROM `table1` WHERE `acked` != 1 AND `host_status` = 'HOSTDOWN'

返回的结果是良好且符合预期的。

尽管尝试合并两个表来搜索相同的内容,但它不会出错,但同时不会返回任何我可以理解的结果,因为我正在使用“AND”

SELECT `table1`.*, `table2`.*
FROM table1, table2
WHERE (`table1`.`acked` != '1' AND `table1`.`host_status` = 'HOSTDOWN')
AND (`table2`.`acked` != '1' AND `table2`.`host_status` = 'HOSTDOWN')   

但是,如果我使用以下“OR”,我会得到结果,但不是预期的结果,我还会得到 1 和 0 的确认值,但具有 HOSTUP 的 host_status

SELECT `table1`.*, `table2`.*
FROM table1, table2
WHERE (`table1`.`acked` != '1' AND `table1`.`host_status` = 'HOSTDOWN')
OR (`table2`.`acked` != '1' AND `table2`.`host_status` = 'HOSTDOWN')  

有什么指示吗?

答案1

我找到了使用的答案UNION

SELECT * FROM `table1` WHERE `acked` != 1 AND `host_status` = 'HOSTDOWN' UNION 
SELECT * FROM `table2` WHERE `acked` != 1 AND `host_status` = 'HOSTDOWN'

相关内容