[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из 2ух таблиц
Гость_Roman
Здравствуйте.
Мне нужно выбрать 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 написал(а):
Появилась новая проблема. Дело в том, что если он выполняет этот запрос

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 написал(а):
Кое что получается

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" ?
Быстрый ответ:

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