我试图弄清楚如何在 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'