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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2012, 14:47   #1
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию Использование JOIN в MySQL

Доброго времени суток!
Пожалуйста подскажите, как правильно составить SQL-запрос
Имеются две таблицы

Код:
CREATE TABLE IF NOT EXISTS `one` (
  `a` int(11) NOT NULL,
  `b` int(11) NOT NULL,
  `c` varchar(255) NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE IF NOT EXISTS `two` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
где
one.a == two.id - одному из two.id
one.b == two.id - другому two.id, отличному от one.a

нужно из таблицы `one` вытянуть значение поля `c` вместе со значениями `title` таблицы `two` в соответствии с их `id`, значения которых занесены в таблицу `one`

т.е. если бы нужно было `title` только для one.a или только для one.b, то я бы сделал так

PHP код:
$sql 'SELECT one.c, two.title FROM one LEFT JOIN two ON one.a = two.id'
или
PHP код:
$sql 'SELECT one.c, two.title FROM one LEFT JOIN two ON one.b = two.id'
а как сделать запрос, чтобы можно было получить оба title сразу и для one.a, и для one.b?
Minus_yu вне форума Ответить с цитированием
Старый 24.08.2012, 16:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
SELECT one.c, T1.title AS titleA, T2.title AS titleB
  FROM one 
    LEFT JOIN two T1 ON one.a = T1.id
    LEFT JOIN two T2 ON one.b = T2.id
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.08.2012, 16:59   #3
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

Большое спасибо!
Minus_yu вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access использование команды по типу limit из mysql Chicharrr Помощь студентам 0 26.06.2012 18:52
inner join/full join SashkaSonin БД в Delphi 6 23.03.2012 17:13
mysql запрос. INNER JOIN limit artemhp SQL, базы данных 2 11.11.2010 17:52
Совместное использование БД в mysql GreenShuller БД в Delphi 7 28.06.2010 10:54
MySQL использование БД одним файлом psyco БД в Delphi 1 16.05.2010 15:33