|
Магия
|
|||
---|---|---|---|
#18+
Доброго всем дня. Возникла такая ситуация. Есть две таблицы contact (поля id, email) и contact_emails (поля contact_id, email), нужно обновить столбец email таблицы contact значениями email из таблицы contact_emails но в таблице contact_emails поле contact_id не уникальное и следовательно может быть несколько строк с одним и тем же contact_id. если такая строчка встречается, нужно выбрать любое значение (пусть хоть первое), мой текущий(наивный) код Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 17:34 |
|
Магия
|
|||
---|---|---|---|
#18+
Linkoln_ пишет что запрос вернул более одной строки Код: sql 1.
будет возвращаться всегда одна запись. Направлением сортировки можно задать какая именно запись - первая или последняя. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 18:47 |
|
Магия
|
|||
---|---|---|---|
#18+
Используйте UPDATE, Multiple-table syntax. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 19:11 |
|
Магия
|
|||
---|---|---|---|
#18+
Gluck99 Linkoln_ пишет что запрос вернул более одной строки Код: sql 1.
будет возвращаться всегда одна запись. Направлением сортировки можно задать какая именно запись - первая или последняя. Не помогло, все-равно авторUPDATE `fish_main5`.`wa_contact` wc SET email = (SELECT email FROM `fish_main5`.`wa_contact_emails` WHERE (SELECT DISTINCT contact_id FROM `fish_main5`.`wa_contact_emails`) = wc.id LIMIT 1) Ответ MySQL: Документация #1242 - Subquery returns more than 1 row ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 19:35 |
|
Магия
|
|||
---|---|---|---|
#18+
Ой, не то скинул, так понятно, что не должно сработать. вот так пробовал UPDATE `fish_main5`.`wa_contact` wc SET email = (SELECT email FROM `fish_main5`.`wa_contact_emails` WHERE (SELECT contact_id FROM `fish_main5`.`wa_contact_emails` LIMIT 1) = wc.id ) То же самое ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 19:40 |
|
Магия
|
|||
---|---|---|---|
#18+
Linkoln_, 1) Используйте тэги подсветки синтаксиса, иначе просто вырви глаз. Вы же видите, как другие делают, делайте так же. 2) Пробуйте с JOIN'ом, это самый грамотный способ. 3) Не могу понять, почему у вас 2 SELECT'а? Что мешало написать просто: Код: sql 1. 2. 3.
Закомментирована сортировка по полю email, соотв. если выставить направление сортировки (ASC или DESC), в таблицу contact будут попадать разные значения поля email из таблицы contact_emails. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 02:13 |
|
Магия
|
|||
---|---|---|---|
#18+
Gluck99, Пробовал, зависает на 2 минуты, а потом обваливается с ошибкой превышения времени ожидания ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 12:27 |
|
Магия
|
|||
---|---|---|---|
#18+
Linkoln_ Пробовал, зависает на 2 минуты, а потом обваливается с ошибкой превышения времени ожидания ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 12:31 |
|
Магия
|
|||
---|---|---|---|
#18+
Да чёрт возьми... ну вроде указал, что почитать - так нет, всё равно будем делать через одно место... Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 13:01 |
|
Магия
|
|||
---|---|---|---|
#18+
Gluck99, Индексы есть 7512 записей ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 19:10 |
|
Магия
|
|||
---|---|---|---|
#18+
Akina, Спасибо, помогло. Действительно помогло, правда, я не разобрался, как это сработало, буду штудировать JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 19:24 |
|
Магия
|
|||
---|---|---|---|
#18+
Linkoln_ Спасибо, помогло. Действительно помогло, правда, я не разобрался, как это сработало, буду штудировать JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2021, 23:20 |
|
|
start [/forum/topic.php?fid=47&msg=40033908&tid=1828243]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 272ms |
0 / 0 |