использование sql Different для извлечения одного столбца из двух разных таблиц базы данных - PullRequest
1 голос
/ 24 ноября 2011

У меня есть вопрос, и я не могу найти какой-либо подсказки по этому вопросу.Я ищу, чтобы получить тот же столбец из двух таблиц в базе данных, например, User и UserGroup.

Если бы я выбрал Джона из Таблицы пользователей, Джон будет отображаться в Таблице групп пользователей, а в Таблице пользователей Джон больше не будет отображаться.Можно ли даже сделать такой запрос ??

User
 1. John
 2. Jane
 3. Tom

User Group
 Empty

После выбора Джона:

User
 2. Jane
 3. Tom

User Group
 1. John

Вместо того, чтобы иметь следующее (что у меня сейчас):

User

 1. John
 2. Jane
 3. Tom

После выбора Джона:

UserGroup

 1. John

Единственный возможный способ, о котором я могу думать прямо сейчас, это следующее:

SELECT DISTINCT usuarios.id_usuario
FROM usuarios
JOIN 
usuarios_grupos
ON
(usuarios_grupos.id_usuario = usuarios.id_usuario)

Однако я выполнил запроси это не дает мне идеальный результат.Есть мысли по этому поводу?

Я сделал UNION ALL:

SELECT DISTINCT usuarios.id_usuario
FROM usuarios
UNION ALL
SELECT DISTINCT usuarios_grupos.id_usuario
FROM usuarios_grupos

и получил следующий результат:

 1. John 
 2. Jane
 3. Tom
 4. John
 5. Jane
 6. Tom

Ответы [ 3 ]

1 голос
/ 24 ноября 2011

Эти два запроса могут сделать то, что вы ожидаете, первый покажет всех пользователей, кроме второго:

SELECT DISTINCT usuarios.id_usuario
FROM usuarios
WHERE id_usario NOT IN (SELECT DISTINCT id_usuario FROM usuarios_grupos)

И второй

SELECT DISTINCT usuarios_grupos.id_usuario
FROM usuarios_grupos 
0 голосов
/ 24 ноября 2011

Не могли бы вы попробовать это?:

SELECT DISTINCT usuarios.id_usuario
FROM usuarios
UNION ALL
SELECT DISTINCT usuarios_grupos.id_usuario
FROM usuarios_grupos
WHERE id_usuario NOT IN (
SELECT DISTINCT usuarios.id_usuario
FROM usuarios)

Это должно дать вам значения от usuarios и значения от usuarios_grupos, которых нет в usuarios ..

0 голосов
/ 24 ноября 2011

Хотелось бы что-то вроде

SELECT t2.id_usuario FROM usuarios t2 WHERE NOT EXISTS (SELECT usuarios_grupos.id_usuario FROM usuarios_grupos) t1

работа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...