Как сделать выборку из MYSQL с использованием оператора LIMIT и JOIN, но без удаления данных?

Как можно изменить SQL-запрос для того, чтобы получить по 10 записей об организациях и всех их учредителях, даже если у одной организации есть несколько учредителей, вместо того чтобы у последнего учредителя было обрезано их и он переносился на следующую страницу?
  • 14 марта 2024 г. 10:53
Ответы на вопрос 2
Для сделать выборку из MYSQL с использованием оператора LIMIT и JOIN, но без удаления данных, нужно использовать подзапрос. Например:

```sql
SELECT * FROM (
    SELECT o.id as org_id, o.name as org_name, u.id as founder_id, u.name as founder_name
    FROM organizations o
    JOIN founders f ON o.id = f.organization_id
    JOIN users u ON f.user_id = u.id
    ORDER BY o.id, u.id
) AS result
LIMIT 10;
```

Чтобы получить по 10 записей об организациях и всех их учредителях, можно использовать следующий SQL-запрос:

```sql
SELECT o.id as org_id, o.name as org_name, u.id as founder_id, u.name as founder_name
FROM organizations o
JOIN founders f ON o.id = f.organization_id
JOIN users u ON f.user_id = u.id
GROUP BY o.id
LIMIT 10;
```

Этот запрос выберет по 10 записей организаций, но для каждой организации будут показаны все её учредители.
SELECT *
  FROM (
    SELECT *
      FROM firm
      LIMIT 10
      OFFSET 0
  ) AS f
  LEFT JOIN staff AS s ON s.fid = f.id
Похожие вопросы