Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выборка из двух таблиц одним запросом
 
 автор: indexer   (02.11.2006 в 00:01)   письмо автору
 
 

Здравствуйте Стоит задача выборки из двух таблиц обним запросом решаю ее вот таким образом:


SELECT date_news.name
AS name, date_news_theme.theme 
AS theme 
FROM date_news, date_news_theme 
WHERE date_news.themeID=date_news_theme.themeID 
ORDER BY date_news_theme.theme


Хотелось бы узнать есть ли более легкий путь? без подробного указания что от куда берется
Слышал вроде как есть, что то "именованное" Но что это и как работает так и не понял.

   
 
 автор: cheops   (02.11.2006 в 01:52)   письмо автору
 
   для: indexer   (02.11.2006 в 00:01)
 

Можно действовать следующим образом
SELECT date_news.* 
FROM date_news, date_news_theme  
WHERE date_news.themeID=date_news_theme.themeID  
ORDER BY date_news_theme.theme

   
 
 автор: cia   (02.11.2006 в 09:54)   письмо автору
 
   для: cheops   (02.11.2006 в 01:52)
 

А можно так:

select dn.name,dnt.theme
from date_news dn
inner join date_news_theme dnt on dnt.themeID=dn.themeID
order by dnt.theme

Но, помоему, структура базы данных посторена не очень оптимально

   
 
 автор: indexer   (10.11.2006 в 05:04)   письмо автору
 
   для: cia   (02.11.2006 в 09:54)
 

Спасибо cia
вот только не понятно, что такое dn и dnt
рискну предположить что это
dn-dataname
dnt-datanametheme

Существуют ли ограничения на имена?Или ставь любое лишь бы сам понял?

или как я уже и говорил это что то именованое, принцип работы понятен, а осмыслить все это что то не получается.

База построена оптимально, просто неудачный пример привел.
Структура строилась из расчета неповторяемости и независимости данных,
существуют разделы, разбитые на темы, а темы в свою очередь на подтемы, вот такая вот сложная структура + каждый раздел можно коментировать. все это попытался внести в 4 таблицы, структура базы разработана и работает, но тут я попытался экономить на запросах к базе, а именно объединять запрос к разным таблицам, и споткнулся об объединение.

SELECT * не подходит изначально могут такого населектить мало не покажется.

   
 
 автор: Trianon   (10.11.2006 в 09:34)   письмо автору
 
   для: indexer   (10.11.2006 в 05:04)
 

>вот только не понятно, что такое dn и dnt

from date_news dn -- отсюда видно, что dn - синоним date_news
inner join date_news_theme dnt -- отсюда видно, что dnt - синоним date_news_theme

Поглядите в описании SELECT ... FROM ... JOIN на конструкции NATURAL JOIN и JOIN ... USING.
На мой взгляд, пользоваться ими неудобно, особенно первой. Но похоже, это именно то, что Вы ищете.

   
 
 автор: indexer   (10.11.2006 в 20:50)   письмо автору
 
   для: Trianon   (10.11.2006 в 09:34)
 

Trianon ссылка помогла, большое спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования