powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите со сложным запросом... plz...
7 сообщений из 7, страница 1 из 1
Помогите со сложным запросом... plz...
    #32276961
kevil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существуют таблицы:

Table doc
docid
val1
val2
.
.
.
valN

и

Table fld
docid
fldid
val

docid=docid

Нужно построить запрос на MySQL, возвращающий все записи doc, удовлетворяющие всем условиям одновременно (например):

doc.val1 >= 5
doc.val2 = 0
doc.val3 <100
doc.docid=fld.docid
.
.
.
fld.fldid=10 AND fld.val=100
fld.fldid=11 AND fld.val=50
.
.
.
ffld.ldid=28 AND fld.val>=0
Все условия объединяются AND. Запрос формируется динамически.

Голову уже сломал. Ничего не выходит :(
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32277092
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так ты все правильно делаешь.
Кидай сюда данные в таблицах и что хочешь получить.
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32277934
kevil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что в таблице fld может существовать сразу
fld.fldid=10 AND fld.val=100
fld.fldid=11 AND fld.val=50
и мне нужно проверить соответствие всех условий одновременно
fld.fldid=10 AND fld.val=100 AND fld.fldid=11 AND fld.val=50 - заведомо ложное условие...
Так тоже не работает:
(fld.fldid=10 AND fld.val=100) AND (fld.fldid=11 AND fld.val=50)
, что логично.
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32277949
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл такой
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT a.*, b.*, c.*
FROM doc a LEFT JOIN fld b ON b.docid=a.docid LEFT JOIN fld c ON c.docid=a.docid
WHERE
b.fldid= 10  AND b.val= 100  
AND
c.fldid= 10  AND c.val= 100  
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32278408
kevil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Работает!

Правда очень медленно.
А нельзя ли это как-то ускорить?

Для запроса по одному условию без LEFT JOIN тратилось в несколько раз меньше времени, не говоря уже о нескольких условиях (правда без JOIN несколько условий не работало).
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32278417
kevil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле медленно работает COUNT с этим запросом, а он нужен, т.к. результат выдается порциями.
...
Рейтинг: 0 / 0
Помогите со сложным запросом... plz...
    #32278466
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А результат
Код: plaintext
1.
2.
SHOW CREATE TABLE doc;
SHOW CREATE TABLE fld;

покажи!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите со сложным запросом... plz...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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