私は3つのテーブルを持っています。
表 1 はパッケージです。表 2 は package_to_keyword です。表 3 はキーワードです。
パッケージは複数のキーワードに接続できます。したがって、package_to_keyword キーワードとパッケージの結合を照会すると、特定のキーワードに関連するすべてのパッケージを検索できます。それは私が理解している部分です。
今...私の質問は、キーワードのリストに一致するパッケージを取得するにはどうすればよいですか? 現在、PHP では、SQL ステートメントをループしてから、各キーワードのすべての結果をループし、array_intersect() を実行して、すべての結果セットに表示されるパッケージに絞り込みます。ただし、このタイプの関係を処理するように SQL が構築されていると確信しているときに各キーワードに対してクエリを実行しているため、これは悪いことだと確信しています。実行するクエリの種類がわからないだけです。
重要なのは、キーワードのリストは任意の数の単語にすることができるということです。IN ('keyword','array','returns','all','results') のようなものを使用すると、パッケージが必要なときに、キーワードのいずれかと関係があるすべてのパッケージのリストを取得する だけですすべてのキーワードと関連性があります。
考え?