Забыли пароль?
Запросите новый здесь.

Автор темы: grungestranger
ID темы: 1719
Информация:
Тема содержит 9 сообщения, была просмотрена 1681 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
Простенькая задачка по MySQL
grungestranger
Есть таблица user_units

id------------------unit_id------------------user_id

1-------------------2-------------------------3

2-------------------4-------------------------1

3-------------------1-------------------------2

4-------------------5-------------------------4

5-------------------4-------------------------3

6-------------------2-------------------------1

7-------------------5-------------------------2

8-------------------1-------------------------4

9-------------------3-------------------------2

10-----------------3-------------------------3



Как выбрать пользователей, у которых есть юниты 2, 3 ,4 (именно все три)?
 
Web
Rush
не думал что справлюсь, sql не мой конек) но получилось
http://www.sqlfid...2/14dc6/21
почти уверен что можно и проще)
 
Web
grungestranger
Спасибо за способ, но хотелось бы проще))
 
Web
Rush
попроще может быть только с джоинами, но джинами у меня что-то не получилось
 
Web
FILON
С JOIN можно такой вариант сделать:
Скачать исходники  Код
SELECT u1.user_id FROM user_units u1
LEFT JOIN user_units u2 ON u2.user_id=u1.user_id
LEFT JOIN user_units u3 ON u3.user_id=u1.user_id
WHERE u1.unit_id='2' AND u2.unit_id='3' AND u3.unit_id='4'




Ссылка на пример
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 
Polarfox
Оффтопик а мне чот кажется что архитектура изначально неверная...

Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Rush
не по тому полю джоинил( архитектура нормальная, типичный мэни ту мэни. просто задача нетривиальная.
 
Web
Razor
Если я всё правильно понял, то
Скачать исходники  Код
SELECT DISTINCT user_id FROM users_units WHERE unit_id IN (2,3,4)



upd: А, если все вместе тогда такой вариант не подойдёт, в данном случае геморойных запросов с кучей джойнов или union'ов не избежать, изначально неправильная структура таблицы.
Изменил(а) Razor, 15.08.2013 11:55
 
Rush
вот почему все говорят, что структура неправильная, но никто не говорит почему?
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
В базе Mysql вместо русских букв отображаются ????  →  MySQL 2 / 4807 15.11.2016 11:32
Работа с mysql даты  →  Вопросы новичков 4 / 3171 15.07.2016 07:55
Задачка.  →  Флуд 1 / 699 21.04.2015 14:04
задачка  →  PHP 3 / 980 05.01.2015 07:55
комментарии на ajx+php+mysql  →  PHP 0 / 1249 02.12.2014 02:45
Зад. по MySQL  →  MySQL 29 / 14077 09.10.2014 07:21
Зад. по MySQL - Непонятное поведение XOR в ON у JOIN  →  MySQL 0 / 910 07.10.2014 11:29
Задачка по MySQL  →  MySQL 2 / 1631 18.08.2014 09:07
ошибка вывода mysql  →  Вопросы новичков 2 / 1706 21.12.2013 09:09
mysql php  →  Вопросы новичков 6 / 2072 20.12.2013 07:22
Топ 5 пользователей форума
Alex Alex (1,171)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)