2011-12-26 2 views
1

Я новичок в PHP и MySQL -> Я пока не очень хорош. Сегодня я столкнулся с проблемой. У меня есть запрос, который объединяет 2 таблицы «голоса» и «истории» Вот оно:Не удалось найти mysql-запрос

SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories JOIN votes ON stories.id = votes.item_name WHERE stories.st_date >= DATE_SUB(NOW(), INTERVAL 32 DAY) 
GROUP BY stories.id 
ORDER BY total_votes ASC LIMIT 10 

мне нужно изменить его так, он только выбирает информацию из таблицы «историй», где поле показ = 1

простой запрос будет выглядеть следующим образом:

SELECT * FROM stories WHERE showing = 1 

Но я понятия не имею, как реализовать это первый запрос, где я присоединиться две базы данных.

ответ

2
SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories, votes 
WHERE stories.id = votes.item_name AND stories.showing = 1 AND stories.st_date >= DATE_SUB(NOW(), INTERVAL 32 DAY) 
GROUP BY stories.id 
ORDER BY total_votes ASC LIMIT 10 
2
SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories JOIN votes ON stories.id = votes.item_name $date 
WHERE showing=1 
GROUP BY stories.id 
ORDER BY total_votes ASC LIMIT 10 

Просто нажмите where. Не забудьте разместить его в правильном порядке.

+0

На всякий случай я забыл упомянуть об этом в своем вопросе, переменная $ date - это "WHERE stories.st_date> = DATE_SUB (NOW(), INTERVAL 32 DAY)", после чего я буду придерживаться AND stories.showing = 1, правильно? – Ilja

+0

Это правильно. –

1

Его не проблема просто добавить его, так как это базовая таблица стыки:

SELECT stories.*, SUM(votes.vote_value) as 'total_votes' 
FROM stories JOIN votes ON stories.id = votes.item_name $date 
WHERE stories.showing = 1 
GROUP BY stories.id 
ORDER BY total_votes ASC LIMIT 10 
+0

На всякий случай я забыл упомянуть об этом в своем вопросе, переменная $ date - это «WHERE stories.st_date> = DATE_SUB (NOW(), INTERVAL 32 DAY)», после чего я буду придерживаться AND stories.showing = 1 , верный? – Ilja

+0

@IlyaKnaup Да :) –

1

изменить ваш запрос на

SELECT stories.*, SUM(votes.vote_value) as 'total_votes' FROM stories 
JOIN votes ON stories.id = votes.item_name 
WHERE stories.showing = 1 
GROUP BY stories.id 
ORDER BY total_votes ASC LIMIT 10 
1

Используйте HAVING показывая = 1 и он должен исправить вашу проблему.

Смежные вопросы