The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"JOIN"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"JOIN"  
Сообщение от pheonix (ok) on 22-Авг-06, 15:00 
есть две таблицы, что за зопрос нужно выполнить чтобы выбралось только то чего нет в правой таблице? [LEFT || RIGHT || INNER] && JOIN не подходит, етсь ли какой-нить другой оператор или синтексис? вообще-то нужна команда обратная INNER, т.е. чтобы нашла все одинаковые записи в левой и правой таблице, но выбрала не это, а обратное, выбрала то чего нет в правой таблице? кто с таким сталкивался?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

  • JOIN, shep, 00:54 , 23-Авг-06, (1)  
    • JOIN, pheonix, 09:46 , 23-Авг-06, (2)  
      • JOIN, pheonix, 10:50 , 23-Авг-06, (3)  

Сообщения по теме [Сортировка по времени, UBB]


1. "JOIN"  
Сообщение от shep email(ok) on 23-Авг-06, 00:54 
>есть две таблицы, что за зопрос нужно выполнить чтобы выбралось только то
>чего нет в правой таблице? [LEFT || RIGHT || INNER] &&
>JOIN не подходит, етсь ли какой-нить другой оператор или синтексис? вообще-то
>нужна команда обратная INNER, т.е. чтобы нашла все одинаковые записи в
>левой и правой таблице, но выбрала не это, а обратное, выбрала
>то чего нет в правой таблице? кто с таким сталкивался?


Очень просто.

SELECT u.`id`, u.`name`
FROM `users` u
WHERE TRUE
AND ( NOT u.`id` IN (
      SELECT bu.`id`
      FROM `banned_users` bu
      )
    )

выбираем юзеров которых нет в таблице забаненых юзеров.

P.S.: Зачем делать отдельную таблицу banned_users вместо поля banned в таблице users, спросите Вы?
- По разным причинам.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "JOIN"  
Сообщение от pheonix (ok) on 23-Авг-06, 09:46 
>SELECT u.`id`, u.`name`
>FROM `users` u
>WHERE TRUE
>AND ( NOT u.`id` IN (
>      SELECT bu.`id`
>      FROM `banned_users` bu
>      )
>    )
>

вообще ничего не понял!!!
у меня есть две таблицы `test1` и `test2`
в них есть одинаковое поле `common` как выбрать все записи из `test1` которых нет в `test2`?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "JOIN"  
Сообщение от pheonix (ok) on 23-Авг-06, 10:50 
решение
select * from test1 LEFT JOIN test2 using(common) where id is null;
вот и всё без всякой мути которая сверху с условиями понаписана
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру