[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объединить три таблицы
Sergen
Доброго времени суток!
Есть три таблицы, у которых есть общие поля.

1) url
2) url type
3) type

Подскажите пожалуйста, можно ли эти три таблицы объединить в одном запросе (У меня пока получается только два запроса (через NATURAL JOIN))?



Спустя 7 минут, 19 секунд (19.05.2012 - 12:04) Invis1ble написал(а):
да

Спустя 1 минута, 58 секунд (19.05.2012 - 12:06) Sergen написал(а):
Цитата (Invis1ble @ 19.05.2012 - 08:04)
да

Два вложенных селекта?

Спустя 2 минуты, 5 секунд (19.05.2012 - 12:08) Invis1ble написал(а):
1. Какая СУБД?
2. Выкладывай дамп структур таблиц, чтоб можно было предметно обсуждать

Спустя 53 минуты, 25 секунд (19.05.2012 - 13:01) Sergen написал(а):
Цитата (Invis1ble @ 19.05.2012 - 08:08)
1. Какая СУБД?
2. Выкладывай дамп структур таблиц, чтоб можно было предметно обсуждать

Таблица пустые, база mysql
Для наглядности я лучше опишу так:

tab_1
url | non_sef | basic |
link.html | index.php&id=1 | basic|

tab_2
type | non_sef | lastmod |
articles | index.php&id=1 | 2012-06-05 |

tab_3
type | changefreq | priority |
articles | weekly | 0,9 |


Спустя 4 минуты, 23 секунды (19.05.2012 - 13:05) Sergen написал(а):
Ну и собственно надо вытащить из
tab_1: url где where `basic`= 'basic'
tab_2: lastmod
tab_3: changefreq и priority

Спустя 10 минут, 52 секунды (19.05.2012 - 13:16) Invis1ble написал(а):
select * from tab_1 t1 left join tab_2 t2 on t2.`type`=t1.url left join tab_3 t3 on t3.`type`=t1.url where `basic`='basic'

Спустя 2 минуты, 41 секунда (19.05.2012 - 13:19) Sergen написал(а):
Цитата (Invis1ble @ 19.05.2012 - 09:16)
select * from tab_1 t1 left join tab_2 t2 on t2.`type`=t1.url left join tab_3 t3 on t3.`type`=t1.url where `basic`='basic'

Спасибо, сейчас убегаю, чуть позже опробую, отпишусь.

Спустя 2 часа, 16 минут, 31 секунда (19.05.2012 - 15:35) Sergen написал(а):
Цитата (Invis1ble @ 19.05.2012 - 09:16)
select * from tab_1 t1 left join tab_2 t2 on t2.`type`=t1.url left join tab_3 t3 on t3.`type`=t1.url where `basic`='basic'

Опс...Сел разбирать и не понял. Что означают t1, t2 и t3?

Спустя 4 минуты, 18 секунд (19.05.2012 - 15:40) Invis1ble написал(а):
псевдонимы таблиц

Спустя 1 час, 18 минут, 24 секунды (19.05.2012 - 16:58) Sergen написал(а):
Не получается. Вытаскивает строки только из tab_1

Спустя 17 минут, 23 секунды (19.05.2012 - 17:16) Sergen написал(а):
Сделал такой запрос. Вроде вытаскивает то что нужно, но че то какой-то простоватый получился... :(

SELECT * FROM  tab_1 , tab_2, tab_3  WHERE  tab_1 .non_sef=tab_2.non_sef AND tab_2 .type= tab_3.type AND `basic`='basic'
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.