Общие > Базы данных

Сложный запрос

<< < (2/2)

Rodent:
И еще маленький вопросик по той же теме:
таблица post с полями id_forum id_post text name user_id date
таблица user с полями id_user login city

При выборке допустим 10 последних постов, через цикл for я каждый раз если user_id!=0 (значит не гость) использую запрос к таблице user что узнать данные о данном пользователе.
Мне так и продолжать таким образом выяснять данные или можно с помощью сложного запроса, и стоит ли это делать?

Макс:
1. Мой запрос не использует поле last_post. В строке

--- Код: --- MAX( p.date ) AS last_post
--- Конец кода ---

last_post - это не поле, а псевдоним для значения  MAX(p.date)

Хотя на твоей таблице это действительно не сработает, так как сейчас у тебя там есть поле с именем last_post.
Попробуй :

--- Код: ---SELECT f. * , MAX( p.date ) AS my_last_post
FROM forum f
INNER JOIN post p ON p.id_forum = f.id_forum
GROUP BY p.id_forum
ORDER BY my_last_post DESC
--- Конец кода ---


2. По поводу юзеров :

--- Код: ---
SELECT f. * , MAX( p.date ) AS last_post, u.*
FROM forum f
INNER JOIN post p ON p.id_forum = f.id_forum
LEFT JOIN user u ON u.id_user = p.user_id
GROUP BY p.id_forum
ORDER BY last_post DESC
--- Конец кода ---
вроде так

Rodent:
Макс
Огромное спасибо.
С форумами дело пошло, а вот с юзерами придеться покопаться...
Щас я немного прокручу в голове что получается...
и если так и не разберусь обязательно задам еще вопросы :-)

Rodent:
Так\'c тут маленький вопросик возник по правильности написания запросов
Например, из запроса мне нужно вытащить допустим 3 переменных, хотя в самой таблице около 15 колонок, мне ставить * или все таки те которые мне нужны? А если их будет 5-6? или 2-3 таблице по 10-15 колонок, а мне из каждой только по 2-3 переменных?

Макс:
Я действую примерно по такому принципу :
если реально надо менее 50% - 75% полей (точное число зависит от моей лени в данный момент времени) то перечисляю поля руками.
Исключением являются случаи, если в таблице есть большие поля (TEXT, BLOB) значения которых мне не нужны - тогда тоже ручками перечисляю поля.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии