使用 Inner Join 连接 MySQL 中的多个表
在 MySQL 中,INNER JOIN 语句允许您基于共同专栏。要执行多表联接,您可以使用以下语法:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column [...] INNER JOIN table_n ON table_n-1.column = table_n.column;
考虑以下场景:您有四个表:
您想要检索特定用户 (user_id = 7) 的所有产品以及超链接每个产品使用清单表中相应的 URL。
原始查询:
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';
此查询将返回 ID 为 7 的用户的所有产品,但它将不包含每个产品的 URL。
已修订查询:
要包含每个产品的 URL,您可以向列表表中添加另一个 INNER JOIN:
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 AND l.url = 'test.com';
在此查询中,我们有:
通过使用此修改后的查询,您可以成功检索指定用户的产品以及用于链接它们的相应 URL。
以上是如何高效地连接MySQL中的多个表来检索相关数据?的详细内容。更多信息请关注PHP中文网其他相关文章!