powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Базовые принципы. Выбор из двух таблиц
16 сообщений из 16, страница 1 из 1
Базовые принципы. Выбор из двух таблиц
    #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
Базовые принципы. Выбор из двух таблиц
    #38569838
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Савельевчто-то с modx может бытьА что, этот запрос из официального релиза (кода) modx?

Сергей СавельевНа выводе множество повторяющихся значений.Вероятно, не хватает связи между таблицами. Если так, то JOIN поможет.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #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
Базовые принципы. Выбор из двух таблиц
    #38569850
Создаётся очень много дублей, вероятно ровно столько, сколько имеется общих совпадений. Ума не приложу, что может быть не так.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569851
Может быть дело в цикле, но что может быть за дело?
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #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
Базовые принципы. Выбор из двух таблиц
    #38569857
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s/тостутствия/отсутствия/
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569890
Таблицы как таблицы, не понимаю в чем сложность? Не создавайте, пожалуйста, иллюзию ответа.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569893
Но за совет про MySQL спасибо vkie, действительно, так удобней и вероятность ошибки в modx сразу отпала.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569899
Понял! Вопрос, который действительно для меня важен: Как исключить выбранную таблицу из результатов, если она нужна лишь для where условий?
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569900
Ответь, пожалуйста, vkle - ты мастер!
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569903
Нет, что-то я уже совсем не в ту сторону... Извиняюсь за то, что пришлось многих запутать. Постараюсь сам разобраться что мне нужно и передать потом в тексте.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569905
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей СавельевНе создавайте, пожалуйста, иллюзию ответа.
Где именно иллюзия, когда в моем ответе явно указан формат джойна, к которому необходимо привести запрос при связывании таблиц?
По каким именно полям связывать их - это мне неведомо, а потому написал просто понятные названия.
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #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
Базовые принципы. Выбор из двух таблиц
    #38569911
Даже так:
Код: plsql
1.
2.
3.
select distinct value, tmplvarid
from modx_site_tmplvar_contentvalues
where tmplvarid="22" order by value
...
Рейтинг: 0 / 0
Базовые принципы. Выбор из двух таблиц
    #38569912
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не за что...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Базовые принципы. Выбор из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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