Здесь курят мануал.

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

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

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

Новости

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

Краснодарское время: 24 Май, 2012, 08:08:15

Страниц: [1] 2
Печать
Автор Тема: Вопрос п sql  (Прочитано 1356 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Baboot    ↓ 
13 Август, 2009, 10:54:54
НЕ ХУЕТА! ХУЕТА!

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

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

Есть таблица a(550 записей) и тблица b(350). В таблице а есть поля id и groupId(ид группы). Смысл в чем есть связь таблицы b и a по id, но нужно делать выборку всех id из таблицы а состоящих в группе(с таким же groupId). Я сделал вьюшку:
Text

SELECT a.id, b.name FROM table1 a, table2 b
WHERE id b.IN
    (
        SELECT id FROM table2 WHERE groupId in
            (
                 SELECT groupId from table2 WHERE id=a.id
            )
    )
OR a.id = b.id
 
Смотрю я на это и кажется мне что это пиздетс. Если не задавать условия по поиску то запрос отрабатывается порядка 0,06....
Записан

2b||!2b
adw0rd    ↓ 
13 Август, 2009, 10:56:47 , спустя 1 минуту 53 секунды
НЕ ХУЕТА! ХУЕТА!

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

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

Почему не JOIN?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Baboot    ↓ 
13 Август, 2009, 10:59:19 , спустя 2 минуты 32 секунды
НЕ ХУЕТА! ХУЕТА!

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

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

потому что кол-во ид в группе может быть разным. от 2 и до 10. И всем этим id нужно присвоить свойство из таблицы a
Записан

2b||!2b
adw0rd    ↓ 
13 Август, 2009, 11:07:56 , спустя 8 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

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

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

Baboot, не понял всеравно, почему не join? Какая разница сколько там может быть идов?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Baboot    ↓ 
13 Август, 2009, 01:26:22 , спустя 2 часа 18 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

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

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

Я просто не пойму как тут это можно реализовать.
сначала мне нужно получить idGroup из table2 оп id из table1;
после этого нужно получить все ид из table2 по полученому idGroup;
Записан

2b||!2b
phpdude    ↓ 
13 Август, 2009, 01:31:21 , спустя 4 минуты 59 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20782
Сила слова: 1.66

select * from table1 as t1 inner join table1 as t2 on t1.group=t2.group where t2.id=10
 
ну и дальше сам ..
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
13 Август, 2009, 01:31:38 , спустя 17 секунд
НЕ ХУЕТА! ХУЕТА!

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

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

Так не пойдет?
 
SQL

SELECT `a`.`id`, `b`.`name`
  FROM `table2` AS `b`
  LEFT JOIN `table1` AS `a` USING(`id`)
 
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Baboot    ↓ 
13 Август, 2009, 01:32:28 , спустя 50 секунд
НЕ ХУЕТА! ХУЕТА!

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

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


select * from table1 as t1 inner join table1 as t2 on t1.group=t2.group where t2.id=10
 
ну и дальше сам ..
Пасиб дюд. Ты как всегда ахуенен
Записан

2b||!2b
phpdude    ↓ 
13 Август, 2009, 01:34:09 , спустя 1 минуту 41 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20782
Сила слова: 1.66

Baboot, ну можешь эдворда вариант заюзать в моем)
 
select * from table1 as t1 inner join table1 as t2 on using(group) where t2.id=10
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Baboot    ↓ 
13 Август, 2009, 01:34:32 , спустя 23 секунды
НЕ ХУЕТА! ХУЕТА!

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

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


Так не пойдет?
 
SQL

SELECT `a`.`id`, `b`.`name`
  FROM `table2` AS `b`
  LEFT JOIN `table1` AS `a` USING(`id`)
 

Немного не то... Ну никогда я не мог нормальным языком объяснить в чем задача, уебестая черта. using(`id`) - там нужно выдрать все id по ид групп, который еще надо получить. Спасибо за оперативность. Дюд дал направление. Ща осилю.
Записан

2b||!2b
phpdude    ↓ 
13 Август, 2009, 01:34:51 , спустя 19 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

подумалось вот. если бы я за каждое "спасибо" за день сказанное мне получал 50 рублей ... в день бы выходило порядка 5000. как поступить? перестать помогать, или делать помощь платной?)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
md5    ↓ 
13 Август, 2009, 01:35:39 , спустя 48 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

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


подумалось вот. если бы я за каждое "спасибо" за день сказанное мне получал 50 рублей ... в день бы выходило порядка 5000. как поступить? перестать помогать, или делать помощь платной?)
не будь мудаком
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
Baboot    ↓ 
13 Август, 2009, 01:38:37 , спустя 2 минуты 58 секунд
НЕ ХУЕТА! ХУЕТА!

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

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


подумалось вот. если бы я за каждое "спасибо" за день сказанное мне получал 50 рублей ... в день бы выходило порядка 5000. как поступить? перестать помогать, или делать помощь платной?)
делай в подписке донэйт
50 с меня =)
Записан

2b||!2b
adw0rd    ↓ 
13 Август, 2009, 01:38:21 , спустя
НЕ ХУЕТА! ХУЕТА!

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

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



Так не пойдет?
 
SQL

SELECT `a`.`id`, `b`.`name`
  FROM `table2` AS `b`
  LEFT JOIN `table1` AS `a` USING(`id`)
 

Немного не то... Ну никогда я не мог нормальным языком объяснить в чем задача, уебестая черта. using(`id`) - там нужно выдрать все id по ид групп, который еще надо получить. Спасибо за оперативность. Дюд дал направление. Ща осилю.
не понимаю что ты хочешь, но думаю можешь добавить
SQL
USING(`id`) AND x.id IN (1,2,3)
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
13 Август, 2009, 01:40:56 , спустя 2 минуты 35 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

adw0rd, я где то читал, что условия больше чем условия соединения таблиц в операторах жойна использовать муветон
Спустя 28 секунд добавил
может ложь конечно)
 
мне похуй, когда надо быстро сделать - пишу как получится запрос, когда вижу что надо сделать БЫСТРЫЙ запрос, приходится писать пиздецок запросы
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Страниц: [1] 2
Печать
 

Перейти в: