1

次のような構造のテーブルがあります (実際のデータやフィールドではありませんが、同じ構造が適用されます)。

ID | City        Field2 Field 3
-------------------------------
1    New York    Ohio   data      
2    Cincinnati  data   data
3    Los Angeles data   Ohio
4    Cleveland   data   data

次に、このような 2 番目のテーブルがあります (これも実際のデータではありません)。

City        State
-------------------------------
Los Angeles California
New York    New York
Cincinnati  Ohio
Cleveland   Ohio
Houston     Texas

ユーザーがデータベースを検索できるようにするphp Webページがあります。その場合、(私の例では) 都市の後の 2 番目のテーブルから対応する州が自動的に出力されます。

ただし、ユーザーが「オハイオ」を検索すると、最初のテーブルに「オハイオ」が存在しなくても、4 つのレコードすべてが返されます。複数のクエリを実行する必要があるようです-最初のテーブルで検索用語を見つけ、2番目のテーブルでもう一度検索してから、最初のテーブルで2番目のテーブルの列1を検索します(そして結果を結合します) . それを行う簡単な方法はありますか?(私はMySQLにかなり慣れていません。)

4

1 に答える 1

1

を使ってみましたUNIONか?

SELECT City FROM table1 WHERE Field2 = 'Ohio' OR Field3 = 'Ohio'
UNION ALL
SELECT City FROM table2 WHERE State = 'Ohio'

クエリがどのように見えるかを確認すると便利です。

于 2013-01-28T21:03:37.003 に答える