SQLinfo.ru - Все о MySQL Highload++ Junior 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.05.2017 20:58:03

kate_p
Участник
Зарегистрирован: 11.05.2017
Сообщений: 2

Выборка из 2х таблиц с чередованием строк

Добрый день,
Есть две таблицы photo и video с одинаковыми полями, нужно сделать выборку всех строк с чередованием.
Т.е например 3 строки первой таблицы photo, 1 строка из второй video и так далее до конца.
Помогите, не могу найти как это сделать.

Неактивен

 

#2 11.05.2017 21:04:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2046

Re: Выборка из 2х таблиц с чередованием строк

Удивительная постановка задачи, проще выбрать обе таблицы и на клиенте уже формировать тот порядок, который Вам нужен.

А что значит 3 строки? По каком критерию упорядочиваем?
А так вообще нужно union пользоваться для такого.

select * from photo ORDER BY `НУЖНОЕ ПОЛЕ` limit 3
union
select * from `video` ORDER BY `НУЖНОЕ ПОЛЕ` limit 1


select * from photo ORDER BY `НУЖНОЕ ПОЛЕ` limit 3 offset 3
union
select * from `video` ORDER BY `НУЖНОЕ ПОЛЕ` limit 1 offset 1


и так далее

Ну или создать view, которой будет union делать на обе таблицы и оттуда уже данные выдергивать.
А покажите пример данных в обеих таблицах? Может быть что-то получше придумается.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 19.05.2017 16:27:50

kate_p
Участник
Зарегистрирован: 11.05.2017
Сообщений: 2

Re: Выборка из 2х таблиц с чередованием строк

Я так и не нашла ответ на свой вопрос.
Попробую объяснить еще раз.

Есть 2 таблицы `фото` и `видео` с одинаковыми колонками `id`. `title` и т.д.
Я хочу выбрать все записи из обеих таблиц, но чтобы через каждые две строки из `фото` вставлялась одна из `видео`
не зависимо от количества строк в обеих таблицах
Должно получиться Фото.id1 Фото.id2 Фото.id3 Видео.Id1 Фото.id4 Фото.id5 Фото.id6 Видео.Id2

Неактивен

 

#4 19.05.2017 16:33:34

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2046

Re: Выборка из 2х таблиц с чередованием строк

В своем ответе я задал Вам несколько вопросов, они не были риторическими ;-).

Опять же, писал
А покажите пример данных в обеих таблицах? Может быть что-то получше придумается.
Не наблюдаю примера данных в Вашем ответе.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 19.05.2017 17:00:01

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5164

Re: Выборка из 2х таблиц с чередованием строк

deadka,
union зависит от кол-ва данных или писать заведомо большой запрос smile
имхо, переменные рулят:
фото нумеруем - 1,2,3,11,12,13,21,22,23,...
видео - 5,15,25,...

Неактивен

 

#6 19.05.2017 22:22:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2046

Re: Выборка из 2х таблиц с чередованием строк

vasya, нам ли не знать, что переменные - это шикарный способ выстрелить себе в ногу smile.
Union - совершенно согласен, но формально это ответ на вопрос ТС.

>Фото.id1 Фото.id2 Фото.id3 Видео.Id1 Фото.id4 Фото.id5 Фото.id6 Видео.Id2

Чтобы получить такой результат имхо нужно сделать две выборки - одну из таблицы с фото, другую из таблицы и спокойно на клиенте их отчередовать.

Так что дополнительный вопрос к ТС - зачем делать это одним запросом? Это вообще учебная задача в институте или рабочая (где не очень важно, как сделать, важен результат)?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson