@dba_ru

Страница 466 из 718
Al
26.03.2018
06:57:28
Второе имя не равно отчество.
Да ты что? Как насчет middle name?

Ilia
26.03.2018
06:57:50
Ну это не отчество. Это другое

Al
26.03.2018
06:58:05
Какое другое?

Это как раз то куда ты можешь вписать свое отчество

Google
Tim
26.03.2018
06:59:01
middle name может быть отчеством, а может и не быть

Al
26.03.2018
06:59:15
Это уже софистика

Мы же о структуре дб а не о национальных особеностях второго/среднего имени.

Tim
26.03.2018
07:00:33
Второе имя не равно отчество.
Нет, этим я сказал, что это утверждение верное

Alexey
26.03.2018
16:01:16
Есть таблица table1, в которой два поля (Name1 и Name2) содержат внешние ключи на другую таблицу table2. Как назвать эти поля в представлении, чтобы они отличались? То есть если я укажу table2.Name сделаю связь таблиц через join, то просто дублируется значение первого поля. Может кто подсказать как в такой ситуации быть?

Alexey
26.03.2018
16:05:17
Через AS, а потом сделать присвоение в WHERE?

Так ошибку выдает.

Извиняюсь, если справшиваю элементарные вещи. Я не так давно начал учить БД.



Вот, что имеется ввиду.

Нужно Петя, Вова, чтобы значения были разные, а дублировалось первое.

Слишком очевидно или непонятно объяснил?)

Google
Dmitriy
26.03.2018
20:04:20
построй ещё раз правильно запрос, и мы тебе поможем

и какие значения в первой таблице

в таблице1 указываешь внешний ключ,который ссылается на первичный ключ в таблице2,который не может быть строкой,он должен быть int

Ilia
27.03.2018
03:33:05
Если ключ в дочерней один, так и оставлять как в родительской табличке. Если ключей больше одного, надо добавлять в имя role name. Причем иногда можно добавлять, иногда замещать role name-ом имя родительского поля. Как удобнее. Это зависит от предметки и таблицы. Role name это роль атрибута в дочерней таблице. Например два юзера посылают письмо друг другу, оба юзера, но у одного роль отправитель, у другого получатель.

Artyom
28.03.2018
06:17:44
Ребят, привет, подскажите , на слейве mysql выполнили транзакции, как определить какие и кто это сделал . Репликация через gtid.

lost
28.03.2018
08:58:36
Очевидно взять gtid_executed совпадающие с uuid слейва

Artyom
28.03.2018
10:30:28
Очевидно взять gtid_executed совпадающие с uuid слейва
на слейве есть вот такой gtid e8469f2e-301c-11e8-8faf-0050569e261a:1-19 , соостветственно на мастере этих 19 транзакций нет.. как мне их выцепить ?

lost
28.03.2018
10:35:53
Смотреть бинлог

слейва

Oleg
28.03.2018
10:52:42
Вопрос - как в docker-compose убить контейнер после его работы? (как команда docker —rm)

Artyom
28.03.2018
11:00:15
Alex
28.03.2018
12:46:55
День добрый. У меня такой интересный вопрос. Вероятно на него ответ будет "никак", но все же вдруг. Есть две таблицы. Допустим структура одинаковая. В одной 1000 записей. В другой 10 записей. ID из второй таблицы есть точно в первой. Каким образом можно сравнить этим записи и получить ID записи и список столбцов по которым есть различия в данных

Валерия
28.03.2018
12:47:36
LEFT JOIn по ID

Alex
28.03.2018
12:47:40
Сравнить каждый атрибут по отдельности конечно могу. Но вот что прям магия произошла

не не не. причем тут left join.

Валерия
28.03.2018
12:47:55
а надо выявить разные?

Google
Валерия
28.03.2018
12:47:59
INTERSECT

Alex
28.03.2018
12:48:26
мне нужно не разные записи, а список атрибутов который отличается по каждой записи

к пример. две таблицы юзеров (id, Ф,И,О) в одной (1, Ivanov, Ivan, Ivanovich). В другой (1, Ivanov, Vasiliy, Ivanovich) Вот чтоб на выходе (1, И)

можно список атрибутов через запятую)

Vladislav
28.03.2018
12:51:20
left join по всем полям

Alex
28.03.2018
12:51:26
Я конечно могу сделать join и каждый атрибут проверить как-то так select case when t1.И=t2.И then 0 else 1 end, ...

А всмысле сделать количество left join соразмерно количеству нужных мне атрибутов?

Валерия
28.03.2018
12:52:28
можно все атрибуты связать как строку , сгенерировать check_sum , выявить там где он отличается) у меня нет идей, а это возможно глупая

чтобы все case when не перчислять если в SQL

Vladislav
28.03.2018
12:54:49
t1 left join t2 on id1=id2 and f1=f2 and i1=i2 and o1=o2 where t2.id is null

Alex
28.03.2018
12:56:27
t1 left join t2 on id1=id2 and f1=f2 and i1=i2 and o1=o2 where t2.id is null
ну так это просто даст все записи где есть хотябы одно поле отличающееся. А мне нужны конкретные поля

знать какие отличаются

Типо в записи 1 только Имя в записи 2 Имя и Фамилией

Vladislav
28.03.2018
12:57:38
на выводе сделай coalesce по каждому полю или что-то типа того

Валерия
28.03.2018
13:08:27
https://events.yandex.ru/events/yasubbotnik/31-march-2018/

мало ли кому пригодится

Artyom
28.03.2018
13:09:43
Смотреть бинлог
Подскажи, пожалуйста, бин лог вот в таком виде , это из-за того что стоит формат row ? т.е. фиксируются только изменения.. и выцепить поидее какой запрос не получится.. #180326 14:13:56 server id 76 end_log_pos 426677906 CRC32 0x6bf9f33f GTID last_committed=116265 sequence_number=116267 rbr_only=yes /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; SET @@SESSION.GTID_NEXT= 'e8469f2e-301c-11e8-8faf-0050569e261a:2'/*!*/; # at 426677906 #180326 14:13:56 server id 76 end_log_pos 426677979 CRC32 0x16b2e455 Query thread_id=8 exec_time=0 error_code=0 SET TIMESTAMP=1522062836/*!*/; BEGIN /*!*/; # at 426677979 #180326 14:13:56 server id 76 end_log_pos 426678151 CRC32 0x32e493c5 Table_map: `mysql`.`user` mapped to number 4 # at 426678151 #180326 14:13:56 server id 76 end_log_pos 426678499 CRC32 0xecd37ab3 Update_rows: table id 4 flags: STMT_END_F BINLOG ' 9NW4WhNMAAAArAAAAIeXbhkAAAQAAAAAAAEABW15c3FsAAR1c2VyAC3+/v7+/v7+/v7+/v7+/v7+ /v7+/v7+/v7+/v7+/v7+/vz8/AMDAwP+/P4RAv5L/rT+YPcB9wH3AfcB9wH3AfcB9wH3AfcB9wH3 AfcB9wH3AfcB9wH3AfcB9wH3AfcB9wH3AfcB9wH3AfcB9wH3AQICAv7AAvcBAPcBAAAAAAANxZPk Mg== 9NW4Wh9MAAAAXAEAAOOYbhkAAAQAAAAAAAEAAgAt////////////////AAAAAADoCDE3Mi4xNi4l DHByb3RvdmVkdXNlcgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAVbXlzcWxfbmF0aXZlX3Bhc3N3b3JkKQAqQkNFQTNGRkU3RTdGNTkyMzRDOTUxQjM1 NDc3NUI4OEMzOTQwNUY4NQFZGuqiAQAAAAAA6AgxNzIuMTYuJQxwcm90b3ZlZHVzZXICAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFW15c3FsX25hdGl2 ZV9wYXNzd29yZCkAKkJDRUEzRkZFN0U3RjU5MjM0Qzk1MUIzNTQ3NzVCODhDMzk0MDVGODUBWRrq ogGzetPs '/*!*/; # at 426678499 #180326 14:13:56 server id 76 end_log_pos 426678573 CRC32 0xe7f74b8d Query thread_id=8 exec_time=0 error_code=0 SET TIMESTAMP=1522062836/*!*/; COMMIT /*!*/; # at 426678573 # at 426678638

lost
28.03.2018
13:10:38
Да. Все верно. Выцепить получится. Есть утилита mysqlbinlog

Приводит row-формат к удобоваримому виду

Google
Artyom
28.03.2018
13:10:56
Vladislav
28.03.2018
13:12:27
https://events.yandex.ru/events/yasubbotnik/31-march-2018/
что-то мало интересного

lost
28.03.2018
13:12:38
Artyom
28.03.2018
13:13:12
с ключом -v ?
щас попробую с ним

с ключом -v ?
спасибо !! запросы появились

Alexey
28.03.2018
15:24:48
к пример. две таблицы юзеров (id, Ф,И,О) в одной (1, Ivanov, Ivan, Ivanovich). В другой (1, Ivanov, Vasiliy, Ivanovich) Вот чтоб на выходе (1, И)
Ко-во столбцов в выоде должно быть одинково. В данном случае столько, сколько столбцов в таблицах.

Валерия
28.03.2018
15:26:45
Но спасибо за обратную связь)

Ilia
28.03.2018
15:29:19
Но спасибо за обратную связь)
Все атрибуты можно только в СУБД, где есть понятие кортежа в виде типа данных. Я только одну такую знаю, это postgress. Если поддержки Кортежа нет, то это будет просто одно сплошное нарушение доменной целостности данных, а не решение.

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

Чтобы это значило?
Что тебе не ясно?

Alexey
28.03.2018
15:31:16
Запрос

Ilia
28.03.2018
15:32:16
Ну там много вариантов

Google
Alexey
28.03.2018
15:33:00
решение уже озвучивалось
Очевидно в выводе не то, что ему нужно будет. Он это, кстати, написал.

Ilia
28.03.2018
15:33:01
Самый простой full outer join конечно...

Очевидно в выводе не то, что ему нужно будет. Он это, кстати, написал.
Так если это запрос то он может написать любой вывод что ему нужно

lost
28.03.2018
15:33:53
вот именно

и никто не говорил, что там ограничится все одним left join

Alexey
28.03.2018
15:36:47
Ок)

lost
28.03.2018
15:38:00
А ещё есть такая штука как natural join...

Страница 466 из 718