SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.08.2010 10:46:33

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

вывод данных

Постараюсь обрисовать задачу
Есть 2 таблицы:

obiekt                                       foto
--------------                       ---------
categ | metka                          metka
   1    |    1                                 1
   1    |    2                                 1
   1    |    3                                 1
   2    |    4                                 2
   2    |    5                                 2
   2    |    6                                 2
   3    |    7                                             
   3    |    8                                           
   3    |    9                                           

как?
1) вывести все поля из таблицы obiekt где есть идентичная metka в таблице foto?
2) вывести все поля из таблицы obiekt где нет идентичной metka в таблице foto?

Отредактированно kuzroman (12.08.2010 10:47:11)

Неактивен

 

#2 12.08.2010 11:24:10

vaspet
Завсегдатай
Зарегистрирован: 11.03.2009
Сообщений: 83

Re: вывод данных

1)
SELECT * FROM obiekt INNER JOIN foto using(metka)
если надо прикрути GROUP BY object.metka

2.а)
SELECT * FROM obiekt WHERE metka NOT IN (SELECT metka FROM foto GROUP BY metka)

или

2.б)
SELECT * FROM obiekt LEFT JOIN foto using(metka) WHERE foto.metka IS NULL;


P.S.
Вопрос знатокам:
      GROUP BY в 2.a) запросе помогает или мешает?
      А какой вариант лучше?

Неактивен

 

#3 12.08.2010 12:25:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: вывод данных

Я бы сказал, что 2б лучше, т.к. он не подразумевает создание временной
таблицы. Что касается группировки — в случае наличия индекса на (metka)
она должна теоретически увеличить производительность, т.к. строк во вре-
менной таблице станет меньше — быстрее будет искать по ней без индекса.

Неактивен

 

#4 12.08.2010 12:42:20

vaspet
Завсегдатай
Зарегистрирован: 11.03.2009
Сообщений: 83

Re: вывод данных

@paulus
спасибо

Неактивен

 

#5 12.08.2010 13:00:12

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

Re: вывод данных

vaspet
Вам спасибо! Все очень помогло!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson