Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь с выборкой / 8 сообщений из 8, страница 1 из 1
27.03.2015, 14:26:31
    #38919088
hack3p
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
Здравствуйте, делаю выборку -
1. вывести всех пользователей, c IP которых произошло более одной регистрации,
2. и при этом хотя бы у одного из них должна быть написана характеристика.

В общем, я пока что я пока что сделал первое условие
Код: sql
1.
2.
SELECT firstname, name, description, reg_ip FROM `students` t1
where exists (select reg_ip from `students` t2 where t1.reg_ip=t2.reg_ip and t1.id<>t2.id)



Как мне сделать второе условие?

Заранее спасибо!
...
Рейтинг: 0 / 0
27.03.2015, 14:41:56
    #38919115
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
Где DDL таблицы?
Как определить, что для некоей записи "написана характеристика"?
...
Рейтинг: 0 / 0
27.03.2015, 14:46:27
    #38919128
hack3p
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
Таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE IF NOT EXISTS `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(20) NOT NULL,
  `name` varchar(10) NOT NULL,
  `description` text NOT NULL,
  `reg_ip` varchar(15) NOT NULL
  PRIMARY KEY (`id`)
) ENGINE=InnoDB



AkinaКак определить, что для некоей записи "написана характеристика"?

Поле description либо пустое, либо нет
...
Рейтинг: 0 / 0
27.03.2015, 14:51:03
    #38919143
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
hack3pПоле description либо пустое, либо нетЭто NULL, строка нулевой длины, строка из только пробельных символов, некая комбинация перечисленного?
...
Рейтинг: 0 / 0
27.03.2015, 14:51:53
    #38919145
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
Ах, поле ещё и NOT NULL... уже чуть проще. Но всё равно неясно.
...
Рейтинг: 0 / 0
27.03.2015, 14:57:27
    #38919161
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
Ладно, допустим худший вариант. Тогда, например, так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT firstname, name, description, reg_ip 
FROM students
WHERE reg_ip IN
  (
  SELECT reg_ip 
  FROM students
  GROUP BY reg_ip
  HAVING COUNT(id) > 1
  AND TRIM(GROUP_CONCAT(description SEPARATOR '')) <> ''
  )
;
...
Рейтинг: 0 / 0
27.03.2015, 14:58:59
    #38919164
hack3p
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
AkinaЛадно, допустим худший вариант. Тогда, например, так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT firstname, name, description, reg_ip 
FROM students
WHERE reg_ip IN
  (
  SELECT reg_ip 
  FROM students
  GROUP BY reg_ip
  HAVING COUNT(id) > 1
  AND TRIM(GROUP_CONCAT(description SEPARATOR '')) <> ''
  )
;



Ваш вариант сработал, спасибо большое!
Однако почему худший?
...
Рейтинг: 0 / 0
27.03.2015, 17:37:34
    #38919393
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь с выборкой
hack3pОднако почему худший?Худшим я считаю вариант, когда в "пустом" поле может оказаться произвольная комбинация пробелов, табуляций и прочей неотображаемой хрени.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь с выборкой / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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