[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить запрос
alex_2017
Здравствуйте. Не могу составить mysql запрос. В изображении изображение эскиз таблицы.
Мне нужно вывести все данные из таблицы data соответствующие определенной категории. Параметром для сравнения будет поле category.title.
Помогите, пожалуйста составить запрос для вывода данных.



Спустя 11 минут, 36 секунд (22.04.2010 - 08:11) maxims написал(а):
можно так
SELECT d.* FROM data d, cat_data cd, category c WHERE d.id=cd.id_data AND cd.id_cat=c.id AND name='title1'

Спустя 12 минут, 25 секунд (22.04.2010 - 08:24) alex_2017 написал(а):
Спасибо. Всё оказалось несколько легче чем я думал.

Спустя 3 минуты, 53 секунды (22.04.2010 - 08:28) maxims написал(а):
как сделал то? как я сказал.....

Спустя 1 минута, 35 секунд (22.04.2010 - 08:29) alex_2017 написал(а):
Да. Только псевдонимы убрал. Но у меня там все еще сложнее. Сейчас еще одну таблицу прикручиваю. С комментами.

Спустя 8 минут, 3 секунды (22.04.2010 - 08:37) alex_2017 написал(а):
А вот еще вопрос. Допустим у меня такой запрос
SELECT data.*, COUNT(comments.post) FROM data, cat_data, categories, comments
WHERE data.id=cat_data.id_data
AND cat_data.id_cat=categories.id
AND categories.title='php'
AND comments.post = data.id
GROUP BY data.id ORDER BY data.date DESC

Получается если поля в таблице comments отсутствуют, то не выводится вся строка. В случае с LEFT JOIN пустое поле просто примет значение 0. Как можно добиться тогоже с помощью WHERE?

update
Ну все разобрался:
SELECT data.*, COUNT(comments.post) FROM data 
INNER JOIN cat_data ON data.id=cat_data.id_data
INNER JOIN categories ON cat_data.id_cat=categories.id AND categories.title='php'
LEFT JOIN comments ON comments.post = data.id
GROUP BY data.id ORDER BY data.date DESC

Извиняюсь за 2 сообщения подряд.
Быстрый ответ:

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