powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Вопросы по IT / MySQL помогите с запросом
25 сообщений из 25, страница 1 из 1
MySQL помогите с запросом
    #1546182
Енот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть табл. Users (id*,....)
Есть табл Comments (id, user_id*,...)

Нужно выбрать всех юзеров, у кого есть хотя бы одно сообщение.
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546313
паразит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Енот

так тупить нельзя, это развод какой то
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546318
Енот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
паразит  19.09.2019, 12:40
Енот

так тупить нельзя, это развод какой то
Сто лет к базам не притрагивался
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546321
Фотография t0lix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Keep your pecker up! 👍
Енот  19.09.2019, 11:50
Есть табл. Users (id*,....)
Есть табл Comments (id, user_id*,...)

Нужно выбрать всех юзеров, у кого есть хотя бы одно сообщение.
select * from users where id in (select distinct user_id from comments)
...
Рейтинг: 0 / 1
Не нравится: Барсук-копатель
MySQL помогите с запросом
    #1546327
Фотография Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: SQL
1.
2.
3.
4.
5.
6.
7.
SELECT DISTINCT U.*
FROM Users U
INNER JOIN Comments C ON U.id=C.user_id

SELECT U.*
FROM Users U
WHERE Exists(SELECT 1 FROM  Comments C WHERE U.id=C.user_id)
...
Рейтинг: 1 / 0
Нравится: kDn
MySQL помогите с запросом
    #1546328
Куск
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Енот

Енот join
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546330
Sad_But_False
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артефакт  19.09.2019, 12:44
Код: SQL
1.
2.
3.
4.
5.
6.
7.
SELECT DISTINCT U.*
FROM Users U
INNER JOIN Comments C ON U.id=C.user_id

SELECT U.*
FROM Users U
WHERE Exists(SELECT 1 FROM  Comments C WHERE U.id=C.user_id)
бугога
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546339
Sad_But_False
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
селест * фром юзер вхере айди ин (селест юзерайди фром коментс)
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546344
Sad_But_False
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
виз риданкоммитед!
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546423
Енот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sad_But_False  19.09.2019, 12:46
селест * фром юзер вхере айди ин (селест юзерайди фром коментс)
Похоже на правду. Проверю.
А как при этом отсортировать эту коллекцию по кол-ву постов?
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546432
Оливье
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Енот  19.09.2019, 12:41
паразит  19.09.2019, 12:40
Енот

так тупить нельзя, это развод какой то
Сто лет к базам не притрагивался
Все три варианта в оркале пойдут. И через экзистс и ин и иннерджойн.
Причём современный оптимизатор должен по идее одинаковый план выполнения склепать.
В старых версиях могли быть нюансы. В общем случае быстрее всего работал вариант с экзистом.
...
Изменено: 19.09.2019, 13:12 - Оливье
Рейтинг: 1 / 0
Нравится: kDn
MySQL помогите с запросом
    #1546448
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
Оливье  19.09.2019, 13:11
В общем случае быстрее всего работал вариант с экзистом.
+1 тебе и Артефакту
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546452
паразит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Енот  19.09.2019, 12:41
паразит  19.09.2019, 12:40
Енот

так тупить нельзя, это развод какой то
Сто лет к базам не притрагивался
это в подкорке должно сидеть! без этого срать на форумах стыдно!
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546590
Фотография Ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Енот  19.09.2019, 13:08
Sad_But_False  19.09.2019, 12:46
селест * фром юзер вхере айди ин (селест юзерайди фром коментс)
Похоже на правду. Проверю.
А как при этом отсортировать эту коллекцию по кол-ву постов?
коунт() ... групп бай ... орд
...
God Save the Queen
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546826
Фотография Барсук-копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо, бл?!
t0lix  19.09.2019, 12:42
Енот  19.09.2019, 11:50
Есть табл. Users (id*,....)
Есть табл Comments (id, user_id*,...)

Нужно выбрать всех юзеров, у кого есть хотя бы одно сообщение.
select * from users where id in (select distinct user_id from comments)
ты еблан?
...
ДедаЪ - лучший!
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546831
Фотография Барсук-копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо, бл?!
Енот  19.09.2019, 11:50
Есть табл. Users (id*,....)
Есть табл Comments (id, user_id*,...)

Нужно выбрать всех юзеров, у кого есть хотя бы одно сообщение.
Код: SQL
1.
2.
3.
4.
select *
from Users u
where
  exists (select * from Comments c where c.user_id = u.id)
...
ДедаЪ - лучший!
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546848
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
Барсук-копатель  19.09.2019, 15:43
Енот  19.09.2019, 11:50
Есть табл. Users (id*,....)
Есть табл Comments (id, user_id*,...)

Нужно выбрать всех юзеров, у кого есть хотя бы одно сообщение.
Код: SQL
1.
2.
3.
4.
select *
from Users u
where
  exists (select * from Comments c where c.user_id = u.id)
Я тоже повыебуюсь тогда! * Особенно учитывая то, что cross apply скорее всего нема в майскуле!
Код: SQL
1.
2.
3.
select u.*, c.[csum]
from Users u
cross apply (select SUM(comment_id) csum from Comments c where c.user_id = u.id) c
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546850
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Енот  19.09.2019, 13:08
Sad_But_False  19.09.2019, 12:46
селест * фром юзер вхере айди ин (селест юзерайди фром коментс)
Похоже на правду. Проверю.
А как при этом отсортировать эту коллекцию по кол-ву постов?
В конструкции как показал Sad никак, тогда нужен другой подход
Код: SQL
1.
2.
3.
4.
5.
SELECT Users.id, COUNT(*) Cnt
FROM Users
INNER JOIN Comments ON (Users.id = Comments.user_id)
GROUP BY Users.id
ORDER BY Cnt
или
Код: SQL
1.
2.
3.
4.
SELECT Users.id,
(SELECT COUNT(*) FROM Comments WHERE Comments.user_id = Users.id) Cnt
FROM Users
ORDER BY Cnt
Проверить в лом, ибо таблиц нет. Обычно если просят помочь, дают create стейтменты на таблицы. Тогда помощник может их создать и сразу и проверить свои запросы.
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546874
Фотография Барсук-копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо, бл?!
exists есть везде
это же анси
...
ДедаЪ - лучший!
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546892
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
kDn  19.09.2019, 15:52
Код: SQL
1.
cross apply
Яка чудова конструкция:)
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1546930
Фотография Барсук-копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо, бл?!
Программизд 02  19.09.2019, 16:13
kDn  19.09.2019, 15:52
Код: SQL
1.
cross apply
Яка чудова конструкция:)
есть еще outer apply
зело полезные фичи
...
ДедаЪ - лучший!
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1547406
Енот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Принцип понятен, буду адаптировать к ларавелю
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1547420
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
Барсук-копатель  19.09.2019, 16:25
Программизд 02  19.09.2019, 16:13
kDn  19.09.2019, 15:52
...
Яка чудова конструкция:)
есть еще outer apply
зело полезные фичи
Да. Понял. Можно сразу несколько колонок из подзапроса агрегата тянуть в основной запрос. Супер.
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1547492
паразит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02  19.09.2019, 15:53
или
Код: SQL
1.
2.
3.
4.
SELECT Users.id,
(SELECT COUNT(*) FROM Comments WHERE Comments.user_id = Users.id) Cnt
FROM Users
ORDER BY Cnt
Проверить в лом, ибо таблиц нет. Обычно если просят помочь, дают create стейтменты на таблицы. Тогда помощник может их создать и сразу и проверить свои запросы.
мде, походу sql-запросы не твой конек
НоуСиквыл!
...
Рейтинг: 0 / 0
MySQL помогите с запросом
    #1548651
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
паразит  19.09.2019, 20:20
Программизд 02  19.09.2019, 15:53
или
Код: SQL
1.
2.
3.
4.
SELECT Users.id,
(SELECT COUNT(*) FROM Comments WHERE Comments.user_id = Users.id) Cnt
FROM Users
ORDER BY Cnt
Проверить в лом, ибо таблиц нет. Обычно если просят помочь, дают create стейтменты на таблицы. Тогда помощник может их создать и сразу и проверить свои запросы.
мде, походу sql-запросы не твой конек
НоуСиквыл!
Чего ты так прриебался именно ко второму запросу? Ведь он почти тоже самое что и cross apply только можно лишь одно значение протащить. Наверное ты решил, что второй запрос намного медленее? Но нет. На примере форума сравнение
Код: SQL
1.
2.
3.
SELECT V1_USER.ID, (SELECT COUNT(*) FROM V1_POST WHERE V1_POST.USER_ID = V1_USER.ID) CNT
FROM V1_USER
ORDER BY CNT
0,297 sec
Код: SQL
1.
2.
3.
4.
5.
SELECT V1_USER.ID, COUNT(V1_POST.USER_ID) CNT
FROM V1_USER
LEFT JOIN V1_POST ON (V1_USER.ID = V1_POST.USER_ID)
GROUP BY V1_USER.ID
ORDER BY CNT
0,281 sec
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Вопросы по IT / MySQL помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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