SQLinfo.ru - Все о MySQL Highload++ 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.08.2017 13:58:23

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Помогите с запросом ...

есть запрос списка магазинов на сайте, попробую объяснить:
//запрос списка магазинов
$sql = "
SELECT
COUNT(db.user_id) as count,
shop.*,
usr.name as user_name,
usr.id as user_id

FROM ".PREF."users_shop shop
LEFT OUTER JOIN ".PREF."users usr ON usr.id = shop.user_id
LEFT OUTER JOIN ".PREF."db db ON (db.user_id = shop.user_id) AND (db.status=1 ".$shop_categories.")
WHERE shop.status=1
".$shop_regions."
".$shop_categories."
".$shop_payed."
GROUP by shop.id
ORDER by id desc
";
тоесть они выводятся из базы по id (ORDER by id desc) , из таблицы FROM ".PREF."users_shop , если я правильно понимаю
я добавил к магазинам рейтинг +/- который пишется в таблицу voting (без прификса общеего), как к этому запросу добавить чтобы он делал то что делает сейчас без ущерба, но еще обходил таблицу voting и сортировал магазины не по id , а по полю vote из таблицы voting тоесть как я понимаю ORDER by vote desc
Помогите плз, методом тыка пробовал неполучается , не шарю в этом вопросе настолько чтобы самому решить! Спасибо!

Неактивен

 

#2 04.08.2017 14:05:45

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

в таблице voting для каждого магазина одна запись или несколько?
по каким полям связаны таблицы voting и ".PREF."users_shop ?

Неактивен

 

#3 04.08.2017 14:16:23

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

если вы про то как голосование к каждому магазину привязано то по id магазина ну в скрипте самом, а в базе связаны никак наверное если я правильно понимаю, просто есть стандартные магазины в скрипте я сам в них сделал рейтинг, за каждый магазин можно голосовать +\- , рейтинг работает, пишется в базу  в отдельную таблицу

Неактивен

 

#4 04.08.2017 14:18:10

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

для каждого магазина в поле vote одна запись смо собой 0,1 или 7 ну и т.д.

Неактивен

 

#5 04.08.2017 14:23:26

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

магазины сортируются по id то есть в том порядке как их создают более новый первый и т.д. , а я хочу сделать и прошу помощи как бы изменить этот запрос чтобы они выводились по кол-ву голосов из таблицы voting по полю vote , как то дописать чтоли, я не шарю, поэтому за помощью и обратился на Ваш форум

Неактивен

 

#6 04.08.2017 14:25:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

..
FROM ".PREF."users_shop shop
join voting on shop.id=voting.`id магазина`
..
ORDER by vote desc

Неактивен

 

#7 04.08.2017 14:34:23

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

мб это важно и вы об этом спрашивали (про связку) само голосование выводится так <div class="vot_updown2" id="vt_{%$shop.id%}"></div>
тоесть в таблице voting есть еще поле item где пишется магазины по id тоесть такого вида vt_1  vt_2  и к ним в поле vote кол-во голосов...
vt_  это в таблице голосование к которому плюсуется {%$shop.id%} из таблицы магазинов я так понимаю  vt_{%$shop.id%}

Отредактированно SERblY (04.08.2017 14:37:21)

Неактивен

 

#8 04.08.2017 14:55:47

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

как вы написали не работает выдает Unknown column 'voting.shop.id' in 'on clause'Unknown column 'voting.shop.id' in 'on clause'

я сделал так как вы написали
   //запрос списка магазинов //upd170216
            $sql = "
                SELECT
                        COUNT(db.user_id) as count,
                    shop.*,
                    usr.name as user_name,
                    usr.id as user_id
                   
                FROM ".PREF."users_shop shop
                join voting on shop.id=voting.`shop.id`
                    LEFT OUTER JOIN ".PREF."users usr ON usr.id = shop.user_id
                    LEFT OUTER JOIN ".PREF."db db ON (db.user_id = shop.user_id) AND (db.status=1 ".$shop_categories.") 
                WHERE shop.status=1 
                    ".$shop_regions."
                    ".$shop_categories."
                    ".$shop_payed."
                GROUP by shop.id
                ORDER by vote desc
                ";

Неактивен

 

#9 04.08.2017 15:02:25

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

вместо `id магазина` нужно указать имя столбца из таблицы voting, в котором хранится идентификатор магазина.

Неактивен

 

#10 04.08.2017 15:04:46

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

сделал
//запрос списка магазинов //upd170216
            $sql = "
                SELECT
                        COUNT(db.user_id) as count,
                    shop.*,
                    usr.name as user_name,
                    usr.id as user_id
                   
                FROM ".PREF."users_shop shop
                join voting on shop.id=voting.`item`
                    LEFT OUTER JOIN ".PREF."users usr ON usr.id = shop.user_id
                    LEFT OUTER JOIN ".PREF."db db ON (db.user_id = shop.user_id) AND (db.status=1 ".$shop_categories.") 
                WHERE shop.status=1 
                    ".$shop_regions."
                    ".$shop_categories."
                    ".$shop_payed."
                GROUP by shop.id
                ORDER by vote desc
                ";

Ваще нечего не выводит ((((  блин

Неактивен

 

#11 04.08.2017 15:09:36

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

вот таблица voting


Прикрепленные файлы:
Attachment Icon 777.jpg, Размер: 24,168 байт, Скачано: 15

Неактивен

 

#12 04.08.2017 15:15:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

join voting on shop.id=concat('vt_',voting.`item`)

Неактивен

 

#13 04.08.2017 15:20:18

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

//запрос списка магазинов //upd170216
            $sql = "
                SELECT
                        COUNT(db.user_id) as count,
                    shop.*,
                    usr.name as user_name,
                    usr.id as user_id
                   
                FROM ".PREF."users_shop shop
                join voting on shop.id=concat('vt_',voting.`item`)
                    LEFT OUTER JOIN ".PREF."users usr ON usr.id = shop.user_id
                    LEFT OUTER JOIN ".PREF."db db ON (db.user_id = shop.user_id) AND (db.status=1 ".$shop_categories.") 
                WHERE shop.status=1 
                    ".$shop_regions."
                    ".$shop_categories."
                    ".$shop_payed."
                GROUP by shop.id
                ORDER by vote desc
                ";

К сожалению опять нечего не выводит....Ошибки нет никакой, просто тупо пусто!

Отредактированно SERblY (04.08.2017 15:24:29)

Неактивен

 

#14 04.08.2017 15:31:55

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

сделайте на http://sqlfiddle.com/ пример с тестовыми данными

Неактивен

 

#15 04.08.2017 15:40:14

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

если тупо скопировать код туда то You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql = "
                SELECT
                        COUNT(db.user_id) as co' at line 1

я хз , Вы так пишите как будто я шарю в этом, я поэтому и обратился за помощь, что куда какие данные я хз

Неактивен

 

#16 04.08.2017 15:47:18

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

походу сложный вопрос, блин знатоки помогите с этим долбаным запросом! Спасибо в любом случае за Ваше время и помощь !

Неактивен

 

#17 04.08.2017 15:51:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5269

Re: Помогите с запросом ...

в левом окне пишите запросы на создание нужных для запроса таблицы и заполняете их тестовыми данными (create table .. и insert into)
нажимаете синюю кнопку "build schema"
пишите здесь сгенерированную ссыку

Неактивен

 

#18 07.08.2017 21:38:35

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

Вы поможете с запросом или ????

Неактивен

 

#19 07.08.2017 22:30:21

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

ап

Неактивен

 

#20 07.08.2017 22:40:04

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2093

Re: Помогите с запросом ...

Не надо апать, Вас же попросили сделать пример на sqlfiddle с тестовыми данными. Вот его и сделайте и кидайте сюда ссылку, апанье не поможет.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#21 07.08.2017 23:27:19

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

я незнаю как сделать, прошу помощи

Неактивен

 

#22 10.08.2017 14:27:31

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

ребят не получается, помогите с запросом, в первом посте описал как смог!

Неактивен

 

#23 10.08.2017 16:08:30

SERblY
Участник
Зарегистрирован: 04.08.2017
Сообщений: 16

Re: Помогите с запросом ...

vasya написал:

в левом окне пишите запросы на создание нужных для запроса таблицы и заполняете их тестовыми данными (create table .. и insert into)
нажимаете синюю кнопку "build schema"
пишите здесь сгенерированную ссыку

я не пользовался этим сервисом, я Вам всю инфу скинул, помогите правильно составить

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson