Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / что будет выведено? / 13 сообщений из 13, страница 1 из 1
01.02.2017, 11:04
    #39396131
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
запутался
дано
tbl
Код: plaintext
1.
2.
3.
id  n   xx
1   2   ffff
2   6   yhj
3   66  jkk
что выведет
select max(id), n, xx from tbl
?
...
Рейтинг: 0 / 0
01.02.2017, 11:22
    #39396146
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадя,

Без группировки?
Скорее всего, max(id) выведет 3, а в других полях будет значения из случайной записи.
...
Рейтинг: 0 / 0
01.02.2017, 11:39
    #39396165
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
miksoft,
туплю полностью :(
как вывести
3 66 jkk
эту строку используя max(id) ?
...
Рейтинг: 0 / 0
01.02.2017, 11:44
    #39396169
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадяиспользуя max(id)Это принципиально?
Тогда так:
Код: sql
1.
2.
3.
4.
SELECT t2.*
FROM mytable t2,
(SELECT max(id) max_id FROM mytable) t1
WHERE t2.id=t1.max_id



Если можно без max(id), то так:
Код: sql
1.
2.
3.
4.
SELECT *
FROM mytable
ORDER BY id DESC
LIMIT 1
...
Рейтинг: 0 / 0
01.02.2017, 11:50
    #39396175
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
miksoftЭто принципиально?
принципиально - мозги промыть :)
а на практике , что быстрее выбрать...
и какой из них будет быстрее?
ни разу такая элементарная задача ни стояла ....
и мозги поплыли.
...
Рейтинг: 0 / 0
01.02.2017, 11:55
    #39396186
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадяа на практике , что быстрее выбрать...
и какой из них будет быстрее?При наличии индекса по id оба будут быстрыми. Без - оба медленными.
Вариант с ORDER BY ... LIMIT ... будет немного быстрее, как мне кажется. Но лучше пробовать.
...
Рейтинг: 0 / 0
01.02.2017, 12:01
    #39396197
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
а такой вариант?

Код: sql
1.
2.
3.
4.
SELECT t2.*
FROM mytable t2,
(SELECT max(id) max_id FROM mytable) t1
on t2.id=t1.max_id
...
Рейтинг: 0 / 0
01.02.2017, 12:36
    #39396236
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадя , скорее всего это будет Syntax Error (ON without JOIN). Хотя MySQL может и переварить...
...
Рейтинг: 0 / 0
01.02.2017, 12:40
    #39396246
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
Akina вадя , скорее всего это будет Syntax Error (ON without JOIN). Хотя MySQL может и переварить...
работает нормально.
почему подозрение на ошибку?
ведь (SELECT max(id) max_id FROM mytable) получается подзапрос и простоя связь между таблицей и "таблицей, полученной из селекта"
...
Рейтинг: 0 / 0
01.02.2017, 13:04
    #39396273
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадяработает нормально.
почему подозрение на ошибку?
Это MySQL такой либеральный, что просто заменяет запятую на CROSS JOIN, и ON становится по делу. Более строгие серверы такого не потерпят имхо.
А подзапрос тут вообще не при чём.
...
Рейтинг: 0 / 0
01.02.2017, 13:23
    #39396308
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
Akina,
а слона и не заметил.
...
Рейтинг: 0 / 0
01.02.2017, 16:00
    #39396472
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
вадяа такой вариант?

Код: sql
1.
2.
3.
4.
SELECT t2.*
FROM mytable t2,
(SELECT max(id) max_id FROM mytable) t1
on t2.id=t1.max_id

Ничем не отличается от моего первого варианта.
Для обычного JOIN-а несущественно где находятся условия соединения - в секции ON или в секции WHERE.
...
Рейтинг: 0 / 0
01.02.2017, 21:33
    #39396778
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что будет выведено?
miksoft,
спасибо за инфу,
мой вариант нагляднее в конструкторе dbForge, поэтому мне более привычен
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / что будет выведено? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]