Мне нужно выбрать 3 поля из 2ух таблиц. с конкретными Ид, допустим -> 20, 30, 40. Подскажите пожалуйста правильный синтаксис выборки !
С таким синтаксисом он выбирает все таблицы
SELECT title, date, average
FROM jos_phocagallery_categories, jos_phocagallery_votes_statistics
WHERE jos_phocagallery_categories.id = jos_phocagallery_votes_statistics.catid
Я попробовал так, но он выдает пустое значение.
SELECT title, date, average
FROM jos_phocagallery_categories, jos_phocagallery_votes_statistics
WHERE jos_phocagallery_categories.id IN("20,30,40")= jos_phocagallery_votes_statistics.catid
Вобщем, помогите составить правильный синтаксис.
Спустя 4 минуты, 59 секунд (28.01.2011 - 11:14) waldicom написал(а):
Цитата (Гость_Roman @ 28.01.2011 - 09:09) |
IN("20,30,40")= |
Если jos_phocagallery_categories.id это integer (а это integer), то надо так:
IN(20,30,40)
И знак равно убрать, зачем он там?
А также добавляем второе условие:
AND jos_phocagallery_categories.id = jos_phocagallery_votes_statistics.catid
Спустя 23 минуты, 8 секунд (28.01.2011 - 11:37) Guest написал(а):
Спасибо большое, все работает
Спустя 3 дня, 2 часа, 1 минута, 37 секунд (31.01.2011 - 13:39) Guest написал(а):
Появилась новая проблема. Дело в том, что если он выполняет этот запрос
то, он выбирает те "ид" для которых в таблице jos_phocagallery_votes_statistics есть значение в столбце average, а хотелось бы чтоб он не обращял внимания на столбец average, и если нет значеня для данной категории, то просто возвращял бы ноль.
SELECT title, date, average, jos_phocagallery_categories.id
FROM jos_phocagallery_categories, jos_phocagallery_votes_statistics
WHERE jos_phocagallery_categories.id
IN (" . implode(',', $array) . ")
AND jos_phocagallery_categories.id = jos_phocagallery_votes_statistics.catid
ORDER BY `date` DESC
то, он выбирает те "ид" для которых в таблице jos_phocagallery_votes_statistics есть значение в столбце average, а хотелось бы чтоб он не обращял внимания на столбец average, и если нет значеня для данной категории, то просто возвращял бы ноль.
Спустя 15 минут, 52 секунды (31.01.2011 - 13:55) linker написал(а):
У тебя в запросе нет условия на поле average, переобдумай свой вопрос.
Спустя 17 минут, 56 секунд (31.01.2011 - 14:12) Guest написал(а):
Честно говоря, в голову вообще пока не приходят мысли, как можно переделать запрос
Спустя 1 час, 25 минут, 7 секунд (31.01.2011 - 15:38) linker написал(а):
Ты сначала таки определись, что ты хочешь получить, а уже потом запросы составляй.
Спустя 19 часов, 52 минуты, 55 секунд (1.02.2011 - 11:31) Гость_Roman написал(а):
По началу надо было так составить, но потом выяснилось что в таблице " jos_phocagallery_votes_statistics" нету значений в поле "average", если оно равно нулю т.е за категорию никто не голосовал, поэтому в этой таблице нету рейтинга для нее, в то время, как в таблице, где хранятся все категории "jos_phocagallery_categories" - в ней есть ид этой категории для которой нет рейтинга("average"). Получается надо чтоб он не просто игнорировал (из-за условия
AND jos_phocagallery_categories.id = jos_phocagallery_votes_statistics.catid) а выбирал title,date из " jos_phocagallery_categories" и "average", но чтоб она было равно нулю.
Спустя 1 час, 1 минута, 4 секунды (1.02.2011 - 12:32) Гость_Roman написал(а):
Кое что получается
Почти то что нужно ! только теперь он сравнивает "id" в таблице "jos_phocagallery_categories" с "id" в таблице "jos_phocagallery_votes_statistics", а как зделать так чтоб он сравнивал "id" в таблице "jos_phocagallery_categories" с "catid" в таблице "jos_phocagallery_votes_statistics" ?
SELECT title, date, average, id
FROM jos_phocagallery_categories
LEFT JOIN jos_phocagallery_votes_statistics
USING ( id )
WHERE id
IN ( 70, 53 )
ORDER BY `date` DESC
Почти то что нужно ! только теперь он сравнивает "id" в таблице "jos_phocagallery_categories" с "id" в таблице "jos_phocagallery_votes_statistics", а как зделать так чтоб он сравнивал "id" в таблице "jos_phocagallery_categories" с "catid" в таблице "jos_phocagallery_votes_statistics" ?