@mysql_ru

Страница 70 из 142
Danil
15.09.2017
12:20:31
есть кто живой?

Danil
15.09.2017
12:23:34
есть таблицы для каждого элемента вида : id - значение

Ринат
15.09.2017
12:23:47
mp_val1 а это что за

Google
Danil
15.09.2017
12:23:54
нужно сделать запрос который вернет таблицу со значениями вместо id

Ринат
15.09.2017
12:24:13
а

ну так сджойнить

Danil
15.09.2017
12:24:27
mp_val1 а это что за
ну всмысле это значение из таблицы mp с id1

я не могу допетрить как быть с значениями ca1_id - ca4_id т.к. они берутся из одной таблицы ca

Ринат
15.09.2017
12:26:00
а таблица ca-это какая таблица? название пздц конечно

Danil
15.09.2017
12:27:10
ну блин я не стал писать все сюда. все таплицы вида id - значение

просто для ca на каждую запись идут 4 разных ca_id

структуру не я делал, и по поменять не могу ((

Ринат
15.09.2017
12:29:34
ну так занчения этих ca_id же лежат в той своднйо табличке с айдишниками?

Danil
15.09.2017
12:30:24
да лежат

Ducho
15.09.2017
12:31:42
С чем лучше изучать MySQL?

Ринат
15.09.2017
12:32:58
да лежат
ну а в чём проблема не пойму сджойнить и вытащить их значения?

Google
Danil
15.09.2017
12:39:28
я в джойнах хреново шарю сразу говорю (

делал простое объединение - оно работает для mp, md и сh. а как вытащить в строку 4 значение из таблички ca для rf;ljuj ca*_id?

Alexey
15.09.2017
12:48:31
сделай 4 джойна

join ca ca1 on ca1.id = t.ca1_id join ca ca2 on ca2.id = t.ca2_id ...

С чем лучше изучать MySQL?
а с какого уровня? с нулевого, т.е. SQL тоже не знаком?

Ducho
15.09.2017
12:51:16
Знаком

Alexey
15.09.2017
12:52:29
Знаком
а что интересует в MySQL? администрирование или разработка?

Ducho
15.09.2017
12:52:37
Разработка

Советы нужны

Alexey
15.09.2017
12:56:07
если с английским хорошо, вот эту советую: https://www.amazon.com/MySQL-Cookbook-Solutions-Developers-Administrators/dp/1449374026/

автор работает техническим писателем в команде MySQL уже лет 15 минимум

Ducho
15.09.2017
12:58:50
Спс.английский у меня чуть хромает но разберусь)

Alexey
15.09.2017
13:00:02
вот, нашёл хороший список литературы. Оно формально про MariaDB, но мы же все понимаем, что 99% содержания верно и для MySQL: https://mariadb.org/learn/

Danil
15.09.2017
13:00:21
join ca ca1 on ca1.id = t.ca1_id join ca ca2 on ca2.id = t.ca2_id ...
сейчас попробую. а джойны работают во вью?

Alexey
15.09.2017
13:02:30
Спс.английский у меня чуть хромает но разберусь)
но русском мало хорошего, на мой взгляд. Разве что https://www.ozon.ru/context/detail/id/6573935/. оно уже немного устарело, но для вводного материала должно сойти

Danil
15.09.2017
13:22:39
все заработало! в сумме у меня получилось 7 джойнов. на тестовом наборе данных результат вроде совпадает Спасибо за помощь!

SELECT ebt.id, ebt.EBT, mpcba.mpcba as MPCBA, model.Model, chassis.Chassis, ca1.PartNumber as Cable1, ca2.PartNumber as Cable2, ca3.PartNumber as Cable3, ca4.PartNumber as Cable4, ebt.Comment FROM mmt_cable_ebt_list ebt JOIN mmt_cable_mpcba_list mpcba ON ebt.mpcba_id = mpcba.id JOIN mmt_cable_model_list model ON ebt.model_id = model.id JOIN mmt_cable_chassis_list chassis ON ebt.chassis_id = chassis.id JOIN mmt_cable_cable_list ca1 ON ebt.cable1_id = ca1.id JOIN mmt_cable_cable_list ca2 ON ebt.cable2_id = ca2.id JOIN mmt_cable_cable_list ca3 ON ebt.cable3_id = ca3.id JOIN mmt_cable_cable_list ca4 ON ebt.cable4_id = ca4.id

Muzaffar
16.09.2017
17:02:18
ребята при такой связи ничего страшного нет?



Google
Muzaffar
16.09.2017
17:06:08
ау есть кто?

Yaroslav
16.09.2017
17:13:56
почему их две?

кто с чем связан?

Muzaffar
16.09.2017
17:15:22
типа перегон между двумя станциями

т.е. и фром и ту это форен_киес

Yaroslav
16.09.2017
17:17:19
не вижу нарушений явных

Muzaffar
16.09.2017
17:17:43
получается такой связь возможен?

Yaroslav
16.09.2017
17:18:09
1 ко многому - да

Muzaffar
16.09.2017
17:19:02
тут не только один ко многому но и два связи между двумя таблицами

Yaroslav
16.09.2017
17:19:21
да я понимаю

два разных поля

Muzaffar
16.09.2017
17:19:43
аха

значить с точки зрения проектирования бд можно

ясно спасибо! :)

Yaroslav
16.09.2017
17:20:20
я не вижу нарушений, но может я чего-то не знаю

Muzaffar
16.09.2017
17:20:24
теперь надо понять с точки зрения ОРМ можно или нет :)

Yaroslav
16.09.2017
17:20:25
погуглите

Muzaffar
16.09.2017
17:20:47
вот что просить у гугла не совсем ясно :)

Zaur
17.09.2017
12:08:09
Всем привет. Есть таблица на ~9млн записей. Я случайно выставил всем записям текущую дату в параметре date TIMESTAMP. Есть таблица из резервной копии с нормальными датами. Подскажите самый простой способо перенести даты из резерва в текущую таблицу? Удалять таблицу целиком и переносить все данные из резерва - не вариант, хочется перенести только даты.

Google
Yaroslav
17.09.2017
12:09:43
сделать select в файл, результатом которого будет строка update table date = "нужна дата" where id = 'id' из старой таблицы. применить файл на новой.

как записывать в файл и формировать текст в селекте -> гуглите

Yaroslav
17.09.2017
12:11:16
точно) спасибо
и не забудьте сделать бекап перед манипуляциями

Alexey
17.09.2017
12:11:36
UPDATE t_new JOIN t_old ON t_new.id = t_old.id SET t_new.ts = t_old.ts

Yaroslav
17.09.2017
12:11:55
думаю разберусь)
еще можно сразу сделать update с select

кстать

Alexey
17.09.2017
12:12:36
этим мало кто пользуется :)

lost
17.09.2017
12:12:55
ага... на 9 миллионов записей

Zaur
17.09.2017
12:12:59
UPDATE t_new JOIN t_old ON t_new.id = t_old.id SET t_new.ts = t_old.ts
да, наверно так будет лучше) т.е. мне надо создать в той же базу вторую таблицу, в которой будут данные из резерва. И сделать update

ага... на 9 миллионов записей
подробнее пожалуйста)

Yaroslav
17.09.2017
12:13:10
ага... на 9 миллионов записей
файлом и на части бить?

подробнее пожалуйста)
для select + update слишком много записей

lost
17.09.2017
12:14:27
бежишь копию таблицы в цикле/курсоре и обновляешь оригинал

Zaur
17.09.2017
12:14:30
короче я понял, напишу скрипт который будет пачками селектить и апдейтить

Alexey
17.09.2017
12:16:03
ага... на 9 миллионов записей
а в чём проблема-то?

lost
17.09.2017
12:16:14
а в том что такие большие запросы таблицу лочат

Alexey
17.09.2017
12:16:44
шта?

Google
lost
17.09.2017
12:17:08
next-key lock, все дела

откуда ты знаешь его структуру данных

пусть ест слона мелкими кусочками

Alexey
17.09.2017
12:18:17
я плохо себе представляют работу с покорёженной таблицей. ещё хуже представляю, когда часть данных нормальная, а часть исправленная

в условии задачи одновременного доступа не было. даже если и есть, то next-key lock — это всё-таки не лок таблицы

Zaur
17.09.2017
12:19:01
а что значит чать данных исправленная?

lost
17.09.2017
12:19:25
в условии задачи одновременного доступа не было. даже если и есть, то next-key lock — это всё-таки не лок таблицы
в любом случае это эскалация блокировок построчных и это время и это мейнтенс

так что не надо делать апдейты на 9 млн записей на проде

Zaur
17.09.2017
12:19:47
эта таблица только write only, ни каких апдейтов из проиложения

Alexey
17.09.2017
12:20:05
в смысле, append-only?

Zaur
17.09.2017
12:20:11
да

Alexey
17.09.2017
12:20:23
ну и нормально всё будет

а индекс по полю timestamp вообще есть?

lost
17.09.2017
12:20:50
а индекс по полю timestamp вообще есть?
вот с этого и надо было начинать

Zaur
17.09.2017
12:21:10
Alexey
17.09.2017
12:21:33
нет, значит и next key lock не будет. да если бы и был, ничего страшного бы не случилось

Страница 70 из 142