Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Базовые принципы. Выбор из двух таблиц / 16 сообщений из 16, страница 1 из 1
23.02.2014, 15:37:25
    #38569835
Базовые принципы. Выбор из двух таблиц
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$sql = 'select distinct doc.id, tv1.value
from modx_site_content as doc, modx_site_tmplvar_contentvalues as tv1
where tv1.tmplvarid="22" and doc.parent="17" and doc.published="1" and doc.deleted="0" and doc.isfolder="0" order by tv1.value';
$wave = $modx->db->query($sql);

//asort($wave);

while($row = $modx->db->getRow($wave)) {
        
        $area = $row['value'];
        $docid = $row['id'];
        
        $out[] = htmlspecialchars($area).'=='.$docid;
        
}



На выводе множество повторяющихся значений. Убрав одну таблицу и к ней прилежащие поля в запросе ни каких повторений нет. Всё вроде бы верно, что-то с modx может быть. Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
23.02.2014, 15:42:37
    #38569838
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базовые принципы. Выбор из двух таблиц
Сергей Савельевчто-то с modx может бытьА что, этот запрос из официального релиза (кода) modx?

Сергей СавельевНа выводе множество повторяющихся значений.Вероятно, не хватает связи между таблицами. Если так, то JOIN поможет.
...
Рейтинг: 0 / 0
23.02.2014, 16:05:44
    #38569844
Базовые принципы. Выбор из двух таблиц
vkleСергей Савельевчто-то с modx может бытьА что, этот запрос из официального релиза (кода) modx?Нет, это eval сниппета из поля параметров переменной шаблона.
vkleСергей СавельевНа выводе множество повторяющихся значений.Вероятно, не хватает связи между таблицами. Если так, то JOIN поможет.Пробовал:
Код: sql
1.
2.
3.
4.
select distinct doc.id, tv1.value
from modx_site_content as doc 
join modx_site_tmplvar_contentvalues as tv1
on tv1.tmplvarid="22" and doc.parent="17" and doc.published="1" and doc.deleted="0" and doc.isfolder="0" order by tv1.value


Так же inner join, но результат идентичен.
...
Рейтинг: 0 / 0
23.02.2014, 16:12:41
    #38569850
Базовые принципы. Выбор из двух таблиц
Создаётся очень много дублей, вероятно ровно столько, сколько имеется общих совпадений. Ума не приложу, что может быть не так.
...
Рейтинг: 0 / 0
23.02.2014, 16:13:50
    #38569851
Базовые принципы. Выбор из двух таблиц
Может быть дело в цикле, но что может быть за дело?
...
Рейтинг: 0 / 0
23.02.2014, 16:26:16
    #38569856
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базовые принципы. Выбор из двух таблиц
Сергей СавельевПробовал:
Код: sql
1.
2.
3.
4.
select distinct doc.id, tv1.value
from modx_site_content as doc 
join modx_site_tmplvar_contentvalues as tv1
on tv1.tmplvarid="22" and doc.parent="17" and doc.published="1" and doc.deleted="0" and doc.isfolder="0" order by tv1.value



Так же inner join, но результат идентичен.Забыли указать, по каким полям связывать таблицы:
Код: sql
1.
JOIN `таблица2` ON (`таблица1`.`поле` = `таблица2`.`поле`)


Вообще, по имеющимся данным подсказать сложно, так как отсюда ни структуры таблиц, ни желаемого результата не видно. Может мой Хрустальный Шар сегодня затуманился и я не угадал желаемый результат запроса Хотя, обычно излишек данных от тостутствия связывания берет корни. Опишите простым языком, что хотите получить.


Сергей СавельевМожет быть дело в циклеНе стоит ни гадать, ни углубляться так далеко. Просто выполните запрос (да хотя бы из консоли мускуля) и посмотрите, возвращает он желаемые записи как надо или нет. Если результат запроса верный, тогда можно переходить к обработке в цикле.
...
Рейтинг: 0 / 0
23.02.2014, 16:27:12
    #38569857
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базовые принципы. Выбор из двух таблиц
s/тостутствия/отсутствия/
...
Рейтинг: 0 / 0
23.02.2014, 18:21:37
    #38569890
Базовые принципы. Выбор из двух таблиц
Таблицы как таблицы, не понимаю в чем сложность? Не создавайте, пожалуйста, иллюзию ответа.
...
Рейтинг: 0 / 0
23.02.2014, 18:41:21
    #38569893
Базовые принципы. Выбор из двух таблиц
Но за совет про MySQL спасибо vkie, действительно, так удобней и вероятность ошибки в modx сразу отпала.
...
Рейтинг: 0 / 0
23.02.2014, 18:55:15
    #38569899
Базовые принципы. Выбор из двух таблиц
Понял! Вопрос, который действительно для меня важен: Как исключить выбранную таблицу из результатов, если она нужна лишь для where условий?
...
Рейтинг: 0 / 0
23.02.2014, 18:56:15
    #38569900
Базовые принципы. Выбор из двух таблиц
Ответь, пожалуйста, vkle - ты мастер!
...
Рейтинг: 0 / 0
23.02.2014, 19:00:39
    #38569903
Базовые принципы. Выбор из двух таблиц
Нет, что-то я уже совсем не в ту сторону... Извиняюсь за то, что пришлось многих запутать. Постараюсь сам разобраться что мне нужно и передать потом в тексте.
...
Рейтинг: 0 / 0
23.02.2014, 19:03:33
    #38569905
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базовые принципы. Выбор из двух таблиц
Сергей СавельевНе создавайте, пожалуйста, иллюзию ответа.
Где именно иллюзия, когда в моем ответе явно указан формат джойна, к которому необходимо привести запрос при связывании таблиц?
По каким именно полям связывать их - это мне неведомо, а потому написал просто понятные названия.
...
Рейтинг: 0 / 0
23.02.2014, 19:27:00
    #38569910
Базовые принципы. Выбор из двух таблиц
Вы, vkie, были абсолютно правы, я не вдумался в таблицы, какая для чего служит. Сейчас я тоже не много о них знаю, но теперь я знаю точно, что modx_site_tmplvar_contentvalues в modx таблица сама по себе, я же хотел связать modx_site_content с modx_site_tmplvars, вообще не заглядывая в структуру таблиц MySQL. В итоге получился следующий запрос:
Код: plsql
1.
2.
3.
select distinct tv.value, tv.tmplvarid
from modx_site_tmplvar_contentvalues as tv
where tv.tmplvarid="22" order by tv.value


Спасибо VKIE!
...
Рейтинг: 0 / 0
23.02.2014, 19:28:31
    #38569911
Базовые принципы. Выбор из двух таблиц
Даже так:
Код: plsql
1.
2.
3.
select distinct value, tmplvarid
from modx_site_tmplvar_contentvalues
where tmplvarid="22" order by value
...
Рейтинг: 0 / 0
23.02.2014, 19:32:27
    #38569912
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базовые принципы. Выбор из двух таблиц
Да не за что...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Базовые принципы. Выбор из двух таблиц / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]