Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
Имеются 2 таблицы. Необходимо подставить данные из одной таблицы в другую на основании частичного совпадения полей.
В одной таблице 3000 строк в другой 5000 строк.

Этот запрос работает, но почему-то выводит явно не все данные

SELECT *
FROM testzagruz.TABLE8 INNER JOIN testzagruz.TABLE9
ON '%'+testzagruz.TABLE9.COL1+'%' LIKE testzagruz.TABLE8.COL2

Этот запрос не работает из-за ошибки синтаксиса

SELECT *
FROM testzagruz.TABLE8 INNER JOIN testzagruz.TABLE9
ON testzagruz.TABLE8.COL2 LIKE '%'+testzagruz.TABLE9.COL1+'%'
16 мар 20, 10:52    [22099682]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Этот запрос не работает из-за ошибки синтаксиса

SELECT *
FROM testzagruz.TABLE8, testzagruz.TABLE9
where testzagruz.TABLE8.COL2 LIKE '%'+testzagruz.TABLE9.COL1+'%' 

Починил. С тебя $2000.

Сообщение было отредактировано: 16 мар 20, 11:00
16 мар 20, 11:00    [22099686]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332
Этот запрос работает, но почему-то выводит явно не все данные

Конечно, он не будет выводить все данные, колонки могут не совпадать же. Или совпадать, но не те (10 и больше like '%1%', например)

Сообщение было отредактировано: 16 мар 20, 11:02
16 мар 20, 11:02    [22099689]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332,

Тебе бы и в том треде ответили, просто все спят еще.
16 мар 20, 11:04    [22099692]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
Спасибо, но выдается ошибка(

SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '+testzagruz.TABLE9.COL1+'%'
16 мар 20, 11:05    [22099693]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
crutchmaster,
SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '+testzagruz.TABLE9.COL1+'%'
16 мар 20, 11:06    [22099694]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332,

Ну да. Там надо
SELECT *
FROM testzagruz.TABLE8, testzagruz.TABLE9
where testzagruz.TABLE8.COL2 LIKE concat('%',testzagruz.TABLE9.COL1,'%')
16 мар 20, 11:14    [22099705]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
crutchmaster
vit332,

Ну да. Там надо
SELECT *
FROM testzagruz.TABLE8, testzagruz.TABLE9
where testzagruz.TABLE8.COL2 LIKE concat('%',testzagruz.TABLE9.COL1,'%')


спасибо, с CONCAT и скобками тоже пробовал но выводится очень мало совпадений (около 300 при том что их там должно быть около 3000)
16 мар 20, 11:20    [22099715]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332,

Ну, тогда надо смотреть на данные и там думать как их лучше связать.
16 мар 20, 11:27    [22099719]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
crutchmaster
vit332,

Ну, тогда надо смотреть на данные и там думать как их лучше связать.


спасибо, буду смотреть. А в принципе с тобой можно посотрудничать на платной основе в плане построения каких-либо сложных запросов?
16 мар 20, 11:39    [22099733]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Если там что-то типа адресов или названия товаров, то так с наскока ничего не получится. Связывать по строке это вообще очень геморно, придётся делать почти в ручную.

Сообщение было отредактировано: 16 мар 20, 11:41
16 мар 20, 11:41    [22099737]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332
А в принципе с тобой можно посотрудничать на платной основе в плане построения каких-либо сложных запросов?

Я не люблю сложные запросы, стараюсь их избегать, насколько это возможно. Если можно загнать выборку в цикл и там её обработать, лучше делать так и всем будет жить намного проще.
Но если сильно хочется, то тут, в принципе, помогут, как проснуться и пойдут на обед.

Сообщение было отредактировано: 16 мар 20, 11:46
16 мар 20, 11:46    [22099738]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
crutchmaster
vit332
А в принципе с тобой можно посотрудничать на платной основе в плане построения каких-либо сложных запросов?

Я не люблю сложные запросы, стараюсь их избегать, насколько это возможно. Если можно загнать выборку в цикл и там её обработать, лучше делать так и всем будет жить намного проще.
Но если сильно хочется, то тут, в принципе, помогут, как проснуться и пойдут на обед.


Спасибо!
16 мар 20, 11:49    [22099744]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332
на платной основе

Зачем? Обычно помогают безвозмездно, если предоставлять всю нужную информацию, правильно задавать вопросы и вести свой тред (не пропадать). Делают это чтобы хоть немного отвлечься от своей работы.
16 мар 20, 11:51    [22099745]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332
Спасибо!

Не за что. Спрашивайте, не стесняйтесь.
16 мар 20, 11:51    [22099747]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
Dmitry_8888
Member

Откуда:
Сообщений: 38
crutchmaster,

а если так?
SELECT *
FROM testzagruz.TABLE8, testzagruz.TABLE9
where testzagruz.TABLE8.COL2 LIKE concat('%',testzagruz.TABLE9.COL1,'%')
   or testzagruz.TABLE9.COL1 LIKE concat('%',testzagruz.TABLE8.COL2,'%')
16 мар 20, 12:50    [22099804]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Dmitry_8888,

Мне что-то подсказывает, что там простым "like" не отделаешься.
16 мар 20, 13:08    [22099824]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
vit332
Member

Откуда: Москва
Сообщений: 12
crutchmaster
vit332
Спасибо!

Не за что. Спрашивайте, не стесняйтесь.



все-таки этот сработал, поменял местами только table8 и tabl9, т.к. одна из них содержит слово, а другая содержит это слово плюс еще окружающие слова

SELECT *
FROM testzagruz.TABLE8, testzagruz.TABLE9
where testzagruz.TABLE8.COL2 LIKE concat('%',testzagruz.TABLE9.COL1,'%')

реально помогли!
16 мар 20, 13:10    [22099825]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
vit332
реально помогли!

Странно, но хорошо, конечно.
16 мар 20, 13:15    [22099835]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
Веrd
Member

Откуда: Лазаревское
Сообщений: 561
Хороший вариант - данные выгрузить в 2 датасета, потом задачу решать на питоне через матрицы методами машинного обучения.
16 мар 20, 14:46    [22099933]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
witte
Member

Откуда:
Сообщений: 377
Веrd
Хороший вариант - данные выгрузить в 2 датасета, потом задачу решать на питоне через матрицы методами машинного обучения.

Почему-то анекдот вспомнился про международный конкурс хирургов. :-)
16 мар 20, 15:14    [22099953]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1040
crutchmaster
vit332
А в принципе с тобой можно посотрудничать на платной основе в плане построения каких-либо сложных запросов?

Я не люблю сложные запросы, стараюсь их избегать, насколько это возможно. Если можно загнать выборку в цикл и там её обработать, лучше делать так и всем будет жить намного проще.

Пристрелить!
17 мар 20, 01:59    [22100292]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
CawaSPb
Пристрелить!

Вот, вот. Это и думаешь, когда смотришь на эти ваши sql портянки.
17 мар 20, 05:13    [22100305]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
crutchmaster
CawaSPb
Пристрелить!

Вот, вот. Это и думаешь, когда смотришь на эти ваши sql портянки.
Для меня "загнать выборку в цикл и там её обработать" выглядит, как сложение целых чисел циклом по битам. Зачем, если есть операторы, работающие с числами?

Я понимаю, упрощать портянки промежуточными временными таблицами, или повышать читаемость, используя CTE, но цикл???
17 мар 20, 10:31    [22100404]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
alexeyvg
но цикл

Пусть тогда будет модный map/reduce, раз цикл режет глаз. Суть та же.
17 мар 20, 10:43    [22100417]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61223
Блог
crutchmaster
Я не люблю сложные запросы, стараюсь их избегать, насколько это возможно. Если можно загнать выборку в цикл и там её обработать, лучше делать так и всем будет жить намного проще.

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

select * from table_name

а на получившуюся выборку накладывала клиентский фильтр вида "id = 128". Потому что так лучше и всем жить намного проще.

Сообщение было отредактировано: 17 мар 20, 10:44
17 мар 20, 10:44    [22100420]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
softwarer,

Ну, не доводи до абсурда.
17 мар 20, 10:48    [22100429]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
crutchmaster
alexeyvg
но цикл

Пусть тогда будет модный map/reduce, раз цикл режет глаз. Суть та же.
В смысле, резь в глазах возникает от названия? :-)
А map/reduce всё таки совсем не то, что складывать числа циклом по битам. Он всё таки предоставляет разработчику некие операции над множествами, как и сиквел (только по другому).
Ассоциация с циклами не map/reduce, а кобол, фортран, вот это всё.
17 мар 20, 10:53    [22100433]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
Vyatich
Member [заблокирован]

Откуда:
Сообщений: 3413
alexeyvg,

Кобол прекрасно работает с SQL, если это необходимо, а фортран (FORmula TRANslator) вообще не про это.
17 мар 20, 11:20    [22100459]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
Zmeelov2
Member

Откуда:
Сообщений: 630
crutchmaster
Ну, не доводи до абсурда.
Это не уникальный опыт softwarer-а. Много таких умных было. Мелкая софтина, обрабатывающая список документов. Каждый документ принадлежит одному контрагенту. Пока была сотня документов - все было хорошо. А потом пошла эксплуатация, и с каждым днем софтина грузилась все дольше и дольше. Когда время загрузки превысило 30 секунд, стали разбираться. Создатель софтины решил отображать в справочнике только актуальных контрагентов, то есть тех, для которых были созданы документы - всего на тот момент контрагентов было в таблице более 10 тысяч. Этот любитель циклов делал запрос по всем документам, потом шел циклом по результатам запроса, на каждом шаге делая вставку имени контрагента в делфевый компонент выпадающего списка, чтобы избежать дублирования. Делфевый выпадающий список был сортированным, т.е. перестраивался на каждой вставке. Тоже, видать, не любил сложные запросы.
17 мар 20, 11:52    [22100479]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Zmeelov2,

С другой стороны особо умных не меньше. Была одна система и там всё было на sql портянках. Все, кто в ней разбирался сбежали, остался только один полусумасшедший пассивно-агрессивным расстройством. Разбираться никто не захотел, решили переписать всё заново. Fin.

Сообщение было отредактировано: 17 мар 20, 12:40
17 мар 20, 12:41    [22100540]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Zmeelov2
Этот любитель циклов делал запрос по всем документам, потом шел циклом по результатам запроса, на каждом шаге делая вставку имени контрагента в делфевый компонент выпадающего списка, чтобы избежать дублирования. Делфевый выпадающий список был сортированным, т.е. перестраивался на каждой вставке

А вообще, cool story, bro. Чей-то говнокод тут при том, что ...?

Сообщение было отредактировано: 17 мар 20, 12:42
17 мар 20, 12:43    [22100541]     Ответить | Цитировать Сообщить модератору
 Re: Нужна платная консультация по sql запросу  [new]
Zmeelov2
Member

Откуда:
Сообщений: 630
crutchmaster
А вообще, cool story, bro. Чей-то говнокод тут при том, что ...?
Вам привели два примера: цикл по результатам запроса (мой пример) и наложение локального фильтра после перетягивания выборки на локальную рабочую станцию (softwarer), ставшие результатом неумения правильно применять запросы и непонимания принципов реляционных БД и что с них можно поиметь. Вы сами называете это (кручение результата запроса в цикле) говнокодом, но считаете что вы, гоняя результаты запроса в цикле, аналогичный продукт не производите.
crutchmaster
С другой стороны особо умных не меньше. Была одна система и там всё было на sql портянках. Все, кто в ней разбирался сбежали, остался только один полусумасшедший пассивно-агрессивным расстройством. Разбираться никто не захотел, решили переписать всё заново. Fin.
Классический разрыв компетенций и отсутствие документации. Трабла управленческая, а не софтовая. Может быть чуть-чуть архитектурная. Думаете, если бы в софте крутили запросы в цикле, судьба софта была бы иной? Разве только работало бы медленнее.
17 мар 20, 13:07    [22100571]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Работа Ответить