Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 24 Май, 2012, 02:07:32

Страниц: [1]
Печать
Автор Тема: Выборка элементов из таблицы которых нет в другой таблице  (Прочитано 1088 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Professor    ↓ 
27 Сентябрь, 2009, 02:19:34
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Есть таблица где хранятся статьи.
И вторая таблица, где каждому элементу присвоены какие-либо статьи из первой таблицы.
 
задача:
Вывести на экран 2 списка.
1 список статей принадлежащих элементу
2 список статей которые еще не принадлежат этому элементу
 
PHP

SELECT
   dir_stat.*,
   stat.title as title
FROM
   dir_stat JOIN stat  ON stat.id!=dir_stat.id_stat
WHERE
   dir_stat.id_dir={$ID}

Я думал так != получится. Но увы =(
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
adw0rd    ↓ 
27 Сентябрь, 2009, 07:47:06 , спустя 5 часов 27 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Professor, с left join работал? right?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Professor    ↓ 
27 Сентябрь, 2009, 07:51:20 , спустя 4 минуты 14 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Пробовал. Не то.  Пока делаю 2 запроса. Первым выбираю список статей принадлежащих элементу и запихиваю id в строку '1','2','3'... а вторым выбираю все статьи не относящиеся к данным id.
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
AlexB    ↓ 
27 Сентябрь, 2009, 09:49:51 , спустя 1 час 58 минут 31 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3424
Сила слова: 2.6

Эдворд дело говорит ... если, я правильно понял задачу ...
RIGHT JOIN  .... WHERE dir_stat.id_stat IS NULL
Или LEFT JOIN ... я не понял какая именно таблица какая
Записан

Professor    ↓ 
27 Сентябрь, 2009, 10:06:35 , спустя 16 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

нет нет. не правильно поняли задачу.
Что значит LEFT и RIGHT?
 
Выбрать значения либо из левой  таблицы либо из правой соответственно.
 
А мне нужно выбрать элементы из любой таблицы (тот же INNER) где элементы по id  не равны.
 
Вот
PHP
dir_stat JOIN stat  ON stat.id=dir_stat.id_stat

это выбираем все элементы из обоих таблиц где поля id и id_stat равны.
 
А мне нужно выбрать те где они НЕ равны.
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
Baboot    ↓ 
28 Сентябрь, 2009, 11:56:21 , спустя 13 часов 49 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 10
Сообщений: 441
Сила слова: 2.27

а что мешает сделать:
SQL
dir_stat JOIN stat  ON(stat.id != dir_stat.id_stat)
?
Записан

2b||!2b
Professor    ↓ 
28 Сентябрь, 2009, 12:17:21 , спустя 21 минуту
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

так я и написал что так не работает=)
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
AlexB    ↓ 
28 Сентябрь, 2009, 12:22:36 , спустя 5 минут 15 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3424
Сила слова: 2.6


выбрать элементы из любой таблицы (тот же INNER)
Секундочку ... чуть выше, ты говорил, что тебе надо выбрать именно статьи. Так из любой или все-таки cтатьи.
Записан

Professor    ↓ 
28 Сентябрь, 2009, 01:06:52 , спустя 44 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Секундочку ... чуть выше, ты говорил, что тебе надо выбрать именно статьи. Так из любой или все-таки cтатьи.
да просто не в этом суть.
 
Мне можно и LEFT и INNERT использовать. Это ничего не меняет.
потому что потому что  мне нужно вытащить статьи из левой таблицы которых нет в правой. А если их нет в правой то без разницы LEFT или INNERT (Я сейчас говорю решении данной проблеммы. Естественно надо использовать либо LEFT либо RIGHT. Но это не является существенным при решении данной задачи)
 
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
AlexB    ↓ 
28 Сентябрь, 2009, 01:12:44 , спустя 5 минут 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3424
Сила слова: 2.6


А если их нет в правой то без разницы LEFT или INNERT
Как это без разницы? LEFT тем и отличается от INNER, что вытаскивает ВСЕ ИЗ ЛЕВОЙ таблицы, даже если нет соответствия в правой.
Записан

CTAPbIu_MABP    ↓ 
28 Сентябрь, 2009, 03:17:45 , спустя 2 часа 5 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Мне можно и LEFT и INNERT использовать. Это ничего не меняет.
ага не меняет как же
http://www.codinghorror.com/blog/archives/000976.html
Записан

java.lang.OutOfMemoryError
Professor    ↓ 
28 Сентябрь, 2009, 04:07:08 , спустя 49 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Во!! шикарно!!Спасибо за ссылку.
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
adw0rd    ↓ 
28 Сентябрь, 2009, 04:14:35 , спустя 7 минут 27 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


Во!! шикарно!!Спасибо за ссылку.
сто раз эту ссылку приводили )
Спустя 4 минуты добавил
http://pyha.ru/forum/search2?search=codinghorror
 
http://pyha.ru/forum/topic/2390.msg43035#msg43035 =)
Спустя 18 секунд добавил
http://pyha.ru/forum/topic/3085.msg61475#msg61475 это почитай
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Professor    ↓ 
28 Сентябрь, 2009, 04:59:04 , спустя 44 минуты 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 30
Сообщений: 2074
Сила слова: 1.45

Да я знаю. Видел этот сайт. Около полугода назад. Но запамятовал =(
Простите =*(
Записан

Записки профессора : Кто тут, к примеру, в цари крайний? Никого?! Так я первый буду!
Страниц: [1]
Печать
 

Перейти в: