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'
此查询检索订单表中 user_id '7' 的所有记录,包括关联的定价和产品信息。
包含列表表并将结果限制为具体列表,您需要添加一个附加条件:
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 子句中添加两个条件:
此更新的查询应该为您提供所需的输出:一个表,其中包含有关 user_id '7' 的用户的产品、定价和列表的信息,已过滤以具体上市条件为准。
以上是如何高效过滤多个表的MySQL内连接结果?的详细内容。更多信息请关注PHP中文网其他相关文章!