Запрос, проблемки с логикой

-faqer-

Я только учусь
Запрос, проблемки с логикой

Есть каталог продукции. Каждый продукт можно просмотреть, о чем заносится инфа в таблицу logs
id|time|prod_id
За каждый из присмотренных продуктов можно также проголосовать, о чем инфа тоже заносится в таблицу, но уже в другую votes
id|prod_id|designe|use|support
Необходиом одним запросом подсчитать количество просмотров продукта, а также количество
голосов
Делаю так для продукта под номером 1(его просмотрели 5 раз , проголосовали 2)
PHP:
SELECT count(votes.id) as allvotes, count(logs.id) as allviews FROM votes, logs WHERE logs.prod_id = 1 AND votes.prod_id = 1
вместо alviews = 5 и allvotes = 2 выдает alviews = 10 и allvotes = 10
Понимаю. что траблы в моей логике, но не могу понять где
 

Yurik

/dev/null
Если таблицы не связаны - выполняется двойное сканирование и будет получаться всегда умножение.
PHP:
SELECT count(votes.id) as allvotes, count(logs.id) as allviews FROM votes, logs WHERE logs.prod_id = votes.prod_id AND votes.prod_id = 1
 

-faqer-

Я только учусь
Что вобще нет никакого выхода кроме как лепить несколько запросов
 

-faqer-

Я только учусь
Ну что за грабли
спасибо, akul, distinct помогает, но не полностью
[sql]SELECT count(distinct votes.id) as allvotes, count(distinct logs.id) as allviews FROM votes, logs WHERE logs.prod_id = 1 AND votes.prod_id = 1[/sql]при 5 просмотрах и двух голосах выдает alviews = 5 и allvotes = 2. Но при 5 просмотрах и 0 голосах не выдает вобще нифига.

ъДолжно же это как-то решаться одним запросом
 

f1

formula 1
а чем два запроса не устраивают?
по логике, их два должно быть
 

-faqer-

Я только учусь
Всегда хочется впихнуть невпихуемое :)))
Но раз нельзя буду два
 

f1

formula 1
В военном училище проводили тест на интеллект.
Необходимо было фигуры (куб, шар, призму) засунуть в соответствующие им отверстия. По результатам теста выяснили, что 20% полные дебилы, а 80% очень сильные
 

RomikChef

Guest
ты обращался к ГУРУ.
ГУРУ в таких случаях, если им надо узнать количество записей в двух РАЗНЫХ таблицах, делают ДВА, ПРОСТЫХ запроса, а не лепят один сложный, который будет выполняться в 10 раз дольше.

ГУРУ тебе ответили.
Чего тебе еще не хватает?

чтобы желание твоей левой ноги удовлетворили - "Не желаю двумя запросами, хочу быть царицею морскою?"
Ну так с такими желаниями ты форумом ошибся.
 

-faqer-

Я только учусь
Да собсно все в порядке уважаемый ГУРУ
я уже пять постов назад согласился с высказанной Вами только что идеей
Огромное Вам спасибо за внимание
И все огромное спасибо
 
Сверху