Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
левое объединение не пашет :( (gavru) 01/07/2010 - 09:02:49
      Re: левое объединение не пашет :( (Diter) 13/07/2010 - 16:32:35

> Original message text:
> From: gavru - 01/07/2010 - 09:02:49
> Subject:левое объединение не пашет :(
> -----------------
> Задача вывести все значения отсутствующие в правой табле.
> есстественно в любом учебнике написана left join и tabla2.i is NULL
>
> Делаем 3 совершенно разных запроса:
>
> SELECT * FROM idex_load_item JOIN idex_load_item as `idex_load_item1` on (idex_load_item.id_numper = idex_load_item1.id_numper) where (idex_load_item.`id_load_item` = 1) and (idex_load_item1.`id_load_item` = 14);
>
> SELECT * FROM idex_load_item left JOIN idex_load_item as `idex_load_item1` on (idex_load_item.id_numper = idex_load_item1.id_numper) where (idex_load_item.`id_load_item` = 1) and (idex_load_item1.`id_load_item` = 14);
>
> SELECT * FROM idex_load_item right JOIN idex_load_item as `idex_load_item1` on (idex_load_item.id_numper = idex_load_item1.id_numper) where (idex_load_item.`id_load_item` = 1) and (idex_load_item1.`id_load_item` = 14);
>
> выводит все записи которые совпадают в обоих таблах и усё :)
> ни каких правых нулей вообще ни в каких вариантах :)
>
> результат всегда одинаковый, перечитал мануал по мускулу по объединениям, толку ноль, для разных таблиц работает, а если запрашиваешь из одной и тойже подставляя альяс на саму себя х тачку *CRAZY*
>
> мозг взорван, а не работает *CRAZY*
>
> Подскажите пожалуйста у кого какие идеи будут, подзапросы со вхождением не предлагать, табла слишком большая будет год выполнятся.
>


From: Diter - 13/07/2010 - 16:32:35
Subject:левое объединение не пашет :(
-----------------
Забавная задача: найти значения из таблицы t1, которые отстутсвуют в той же таблице t1. И какой результат вы хотите получить?

Вот простое решение задачи, как понял ее я: есть две таблицы t1 и t2, в обеих таблицах есть столбец id. Найти все значения t1.id, которых нет в t2.id.

SELECT t.id FROM (
SELECT t1.id, t2.id FROM t1
LEFT JOIN t2 ON t1.id=t2.id
/*WHERE t1.id IN (1,14)*/
) as t
WHERE t.id2 IS NULL

/*WHERE t1.id IN (1,14)*/ - это на случай, если нужны точные значения, тогда комментарий можно убрать


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37272



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |