|
|
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Вот работающий запрос в SQLite Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. При переносе на MySQL возникает ошибка "Every derived table must have its own alias". Куда эти альясы приписать? Или вообще в MySQL этот запрос можно проще записать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 14:28 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Пишу так, чтобы каждый подзапрос имел свой альяс (убрав лишнее WHERE): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Но ругается на 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't2 Что еще не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 15:46 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
LiYingЧто еще не так?подзапросам в UNION не нужны алиасы. И потом - если у тебя и так UNION DISTINCT, то нахрена ещё DISTINCT в подзапросах? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:06 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, о DISTINCT еще не думал :) А ваш вариант я попробовал сразу же, но 1137 - Can't reopen table: 'raspr' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:10 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
raspr - это временная таблица, что ли? статические таблицы или представления не могут дать такое сообщение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:14 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Если raspr - временная таблица, то решение будет таким: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:17 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Да, создаю Код: sql 1. 2. 3. 4. А затем тот самый запрос. Так нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:21 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
AkinaЕсли raspr - временная таблица, то решение будет таким: Код: sql 1. 2. 3. 4. 5. 6. 7. Уровень "Бог" :) Да, это работает! А как можно исключить из выборки NULL? И почему, все же, нельзя мой запрос применить к временной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 16:29 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
LiYingкак можно исключить из выборки NULL?По-моему, очевидно, WHERE expression IS NOT NULL . LiYingпочему, все же, нельзя мой запрос применить к временной таблице?Потому что просто нельзя. Implementation такой. И это - невозможность использования копий временной таблицы в одном запросе, - явно описано в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 07:28 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Да, уже сам разобрался. Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 07:56 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Однако, я поспешил... Если добавить WHERE task_id IS NOT NULL, то ошибка > 1054 - Unknown column 'task_id' in 'where clause'. Но в то же время ORDER BY task_id прекрасно сортирует выборку. Почему WHERE "не знает" про поле 'task_id'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 09:44 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
LiYingЕсли добавить WHERE task_id IS NOT NULL, то ошибка > 1054 - Unknown column 'task_id' in 'where clause'.task_id - это имя поля выходного набора? тогда не WHERE, а HAVING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 09:48 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Да, с HAVING все получилось. Еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 09:49 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Хотелось бы услышать ваше мнение. Вот итоговый запрос по вашим рекомендациям: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. У него такой план: Но я придумал другой запрос, поэкспериментировал с ним - выдает те же результаты, что и выше: Код: sql 1. 2. 3. Строка HAVING task_id IS NOT NULL в нем нужна, т.к. есть записи с task1_id,task2_id,task3_id,task4_id = NULL. Выглядит попроще :) Что скажете? Можно его использовать или есть какие нюансы, которые всплывут в каких-либо случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2018, 09:56 |
|
||
|
Конвертнуть запрос из SQLite в MySQL
|
|||
|---|---|---|---|
|
#18+
LiYingЧто скажете?Скажу, что запросы в принципе не эквивалентны. Достаточно появиться одной записи, в которой хотя бы два поля из четырёх NOT NULL - и пламенный привет... а построить constraint, который обеспечит не более одного NOT NULL значения на запись, в MySQL невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2018, 10:13 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39695364&tid=1829650]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 142ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...