SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 08.09.2010 20:03:35

IstiN
Участник
Зарегистрирован: 08.09.2010
Сообщений: 2

Вопрос по MySQL, помогите написать запрос.

Доброго времени суток.
Помогите написать sql запрос для MySQL.
Есть 3 таблицы
1 таблица t1 с полями
id name
2 таблица t2 с полями
id name
3 таблица t3 с полями
id t1_id t2_id
Т. е. 3 таблица связывает сущности из первых двух.
Задача выбрать значения из 1 таблицы, которая связана с конкретными значениями со 2 таблицы.
запрос
select t1.* from t3 join t1 on (t3.t1_id = t1.id) join t2 on (t3.t2_id = t2.id)
where t2.id IN (?, ?, ?)
возвратит все значения даже если есть совпадение по 1 параметру, а нужно только если совпадет по всем 3.
Спасибо.

Неактивен

 

#2 08.09.2010 21:04:22

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

Re: Вопрос по MySQL, помогите написать запрос.

Таки нужно множественное объединение:

JOIN t2 a1 JOIN t2 a2 JOIN t2 a3
WHERE a1.id = ? AND a2.id = ? AND a3.id = ?

Неактивен

 

#3 08.09.2010 22:32:31

IstiN
Участник
Зарегистрирован: 08.09.2010
Сообщений: 2

Re: Вопрос по MySQL, помогите написать запрос.

Спасибо за ответ. Попробовал сделать так
select t1.id from
    t1_t2 t3
    join t1 on (t3.t1_id = t1.id)
    join t2 a1 on (t3.t2_id = a1.id)
    join t2 a2 on (t3.t2_id = a2.id)
   where
    a1.id = 1 AND a2.id = 2
  GROUP BY (t1.id)

получаю пустой результат. Гляньте, плиз мот я чего-нить забыл?

Неактивен

 

#4 11.09.2010 13:32:47

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

Re: Вопрос по MySQL, помогите написать запрос.

Вроде, всё правильно. Может, таких данных нету?

Неактивен

 

Board footer

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