MySQL 的 UNION 和 LIMIT:高效检索多个公司的热门职位
本文演示了如何使用 MySQL 的 UNION
和 LIMIT
子句从不同公司检索指定数量的顶级职位。 挑战在于将 LIMIT
独立地应用于每个公司的职位选择,而不是在全球所有公司中应用。
一种常见但有缺陷的方法使用 UNION DISTINCT
和单个 LIMIT
子句。这会将限制应用于组合结果集,而不是单独应用于每个公司。
解决方案(如 MySQL 文档中详细介绍)涉及在 LIMIT
查询的每个单独 语句中应用 子句 SELECT
。 这确保了每个公司的数据的独立限制。UNION
<code class="language-sql">(SELECT c.name, j.title, j.`desc`, j.link FROM jobs_job j INNER JOIN companies_company c ON j.company_id = c.id WHERE c.name IN ('Company1') ORDER BY name, title LIMIT 0, 10) UNION (SELECT c.name, j.title, j.`desc`, j.link FROM jobs_job j INNER JOIN companies_company c ON j.company_id = c.id WHERE c.name IN ('Company2') ORDER BY name, title LIMIT 0, 10)</code>该查询有效地检索了每个公司的前 10 个职位,满足
操作中独立限制的要求。 在使用多个数据源时,该技术对于准确高效的数据检索至关重要。UNION
以上是如何使用MySQL的UNION和LIMIT检索多个公司的前N个职位?的详细内容。更多信息请关注PHP中文网其他相关文章!