各テーブルの同じ2つのフィールドに対して複数のmysqlテーブルを検索します。

各テーブルの同じ2つのフィールドに対して複数のmysqlテーブルを検索します。

mysqlテーブルで同じ2つのフィールドを取得する方法を見つけようとしています。私が持っているのは、同じデータベースに2つのテーブルがあります。私が現在持っているものは次のとおりです。 -

単一検索が正常に機能する

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

返された結果は良好で予想されます。

同じ項目を検索するために2つのテーブルをマージしようとしましたが、エラーは発生しませんが、同時に「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を使用してホストステータスを取得します。

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'

おすすめ記事