2017-02-16 5 views
-1

Предположим, у меня есть две таблицы. table1 (16 строк) и table2 (20 строк).Mysql единственный результат из двух таблиц

Я хочу получить результаты с помощью подкачки, предположим, 10 строк на страницу.

Как первый запрос возвращает 10 строк из таблицы 1, затем (6 + 4) всего 10 строк из таблицы1 и таблицы2, как это.

Возможно ли достичь этого в одном запросе mysql.

Благодаря

+1

Не могли бы вы опубликовать то, что вы пробовали до сих пор? – Bustikiller

+0

Я попытался получить результат из первой таблицы, когда он начинает возвращать пустые данные, тогда я начинаю получать результаты из второй таблицы, сохраняя в коде последний номер страницы из первой таблицы для получения записи из второй таблицы, начиная со страницы один раз. Я хочу знать, есть ли у них какие-либо возможности совершить то, что в одном запросе mysql. – bhupinder

+0

почему вниз проголосовали и кто – bhupinder

ответ

1

Вы должны использовать профсоюза Это позволит вам объединить результат из N различных запросов. Here - полное руководство от mysql.

Скажем, у вас есть 2 таблицы с именем table1 & table2

table1 имеет столбец id,name,birthday,created_at,age

table2 имеет столбец id,firstname,lastname,created_at,salary

Теперь предположим, что мы хотим, чтобы выбрать id a d имени из обоего таблиц (нет имени колонков в table2 мы можем объединить Firstname & Lastname рассматривать его в качестве имени)

Вот что вам нужно сделать

data = Table1.find_by_sql("(select table1.id , table1.name from table1) UNION (select table2.id, CONCAT(table2.firstname,' ',table2.lastname) as name from table2) limit 10 offset 10") 

Примечание: вы также можете использовать предложение where в обоих запросах, чтобы ограничить, какие данные вы хотите

+0

союз все будет работать для моего сценария – bhupinder

+0

да, вы можете изменить его в соответствии с вашими требованиями, это должно было дать вам представление о том, как это сделать –

 Смежные вопросы

  • Нет связанных вопросов^_^