Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2011, 19:34   #1
silvestr
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 38
По умолчанию Выборка из двух таблиц с сортировкой

Доброго дня!

задался вопросом, прошу подсобить. есть 2 таблицы в базе MySQL:

Etable
Eid Ename Estart


Rtable
Rid Rname Rstart


задача - выбрать Ename и Rname из обоих таблиц, совместив их. но не все так просто. эти данные нужно отсортировать между собой, относительно колонок Estart & Rstart по возрастанию. Estart & Rstart содержат одинаковый тип данных, между собой их можно сравнивать.

выборку из каждой таблицы отдельно делаю без проблем (drupal api):

PHP код:
$er db_query("SELECT Ename, Estart FROM {Etable} WHERE uid = :uid ORDER BY Estart", array (':uid' => $user->uid,))->fetchCol(); 
возвращается массив $er, сразу отсортированный по колонке Estart.

а что касается запроса к 2м таблицам сразу - вот тут у меня и проблема, ибо нужно как-то сложить 2 таблицы вместе, а потом уже отсортировать, где перемешаются между собой Estart и Rstart. неужели для этого придется физически создавать еще одну таблицу в базе, куда сливать все данные из двух этих таблиц?

PS буду признателен, если поможете в реализации с MySQL запросом, сам переведу на синтаксис drupal api
silvestr вне форума Ответить с цитированием
Старый 23.04.2011, 00:19   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Как-то так, только подойдет ли для MySql? Vid для того чтобы можно было различить из какой таблицы. Ну Ename и Rname, а также Estart и Rstart должны быть одинакового типа
Код:
SELECT U.*
  FROM (
    SELECT 1 AS Vid,Ename AS Tname, Estart AS Tstart FROM Etable
    UNION
    SELECT 2 AS Vid,Rname AS Tname, Rstart AS Tstart FROM Rtable) AS U
  ORDER BY U.Tstart
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.04.2011 в 00:35.
Аватар вне форума Ответить с цитированием
Старый 23.04.2011, 01:38   #3
silvestr
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 38
По умолчанию

спасибо за ответ, но все-таки решил слить все данные в одну таблицу. проще и удобней доставать потом данные.
silvestr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из 2х таблиц Mysql snikers987 PHP 5 17.04.2011 17:02
Выборка из таблиц Kingdom_Reborn Помощь студентам 1 22.11.2010 13:05
Выборка из двух таблиц MSD SQL, базы данных 15 11.11.2010 00:58
Выборка таблиц mephist Microsoft Office Excel 4 23.09.2009 04:50
Создание запроса, выборка из 4 таблиц! help! angelkisss SQL, базы данных 3 03.02.2008 15:03