追加のフィルタリングを使用して複数のテーブルをクエリする MySQL 内部結合
内部結合を使用して MySQL の複数のテーブルを結合しようとしています。特に、特定のユーザーの製品、価格、リストに関する情報を取得しようとしています。ただし、クエリにリスト テーブルを含めると、出力に不要なデータが追加されることになります。
クエリを分析し、問題に対処するためにクエリを変更しましょう:
SELECT * FROM orders INNER JOIN products_pricing ON orders.pricing_id = products_pricing.id INNER JOIN products ON products_pricing.product_id = products.id WHERE orders.user_id = '7'
このクエリは次の内容を取得します。関連する価格設定や製品情報を含む、orders テーブルからの user_id '7' のすべてのレコード。
lists テーブルを含めて、結果を特定のものに制限するには
SELECT p.id, p.name, l.url, o.user_id, o.pricing_id FROM orders AS o INNER JOIN products_pricing AS pp ON o.pricing_id = pp.id INNER JOIN products AS p ON pp.product_id = p.id INNER JOIN listings AS l ON l.user_id = o.user_id WHERE o.user_id = '7' AND l.id = 233 -- Add condition to filter by specific listing AND l.url = 'test.com' -- Add condition to filter by specific url
この変更されたクエリは、WHERE 句に 2 つの条件を追加します。
この更新されたクエリにより、目的の出力が提供されます。製品、価格、および user_id '7' のユーザーのリストに関する情報を含むテーブル (フィルター処理済み)特定の出品条件による。
以上が複数のテーブルにわたって MySQL 内部結合結果を効率的にフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。