SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 03.12.2009 15:52:44

frontera
Участник
Откуда: Москва
Зарегистрирован: 03.12.2009
Сообщений: 3

выборка данных из разных таблиц по таблице соответствия.

Здравствуйте Уважаемые!
Извиняюсь может уже и проскакивал такой вопрос на форуме, но как найти ответ на него, в двух словах не описать. И так суть проблемы такова:
есть 2 таблицы,
в одной находятся товары с кодами (артикулами),

во второй соответсвия схожих артикулов, пример:
table1

art          name
11           bla-bla-bla1
22           bla-bla-bla2
33           bla-bla-bla3
44           bla-bla-bla4
table2

art      cross_art
11       22
11       33

смысл в том, что при поиске по запросу 11, нужно выдавать ответ так

найдено значений 3

11 - то что вы искали
22 - это тоже самое
33 - это тоже самое

Я надеюсь понятно изъяснил?
Заранее благодарен!

Неактивен

 

#2 03.12.2009 16:10:40

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

Re: выборка данных из разных таблиц по таблице соответствия.

SELECT * FROM table1 WHERE art = 11
UNION
SELECT table1.* FROM table1 JOIN table2 ON table1.art = table2.cross_art WHERE table2.art = 11

Неактивен

 

#3 04.12.2009 10:26:55

frontera
Участник
Откуда: Москва
Зарегистрирован: 03.12.2009
Сообщений: 3

Re: выборка данных из разных таблиц по таблице соответствия.

ОТЛИЧНО!!! СПАСИБО БОЛЬШОЕ!!! ПОМОГЛО!!!!
А как бы еще к запросам приклеить идентификаторы обозначающие что эта часть то что искали, а вторая  - это аналог?

Неактивен

 

#4 04.12.2009 11:33:49

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

Re: выборка данных из разных таблиц по таблице соответствия.

SELECT table1.*, 1 FROM table1 WHERE art = 11
UNION
SELECT table1.*, 2 FROM table1 JOIN table2 ON table1.art = table2.cross_art WHERE table2.art = 11

Неактивен

 

#5 04.12.2009 15:14:18

frontera
Участник
Откуда: Москва
Зарегистрирован: 03.12.2009
Сообщений: 3

Re: выборка данных из разных таблиц по таблице соответствия.

Круть, спасибо! только я чуть подправил...

SELECT table1.*, 1 AS original FROM table1 WHERE art = 11
UNION
SELECT table1.*, 2 FROM table1 JOIN table2 ON table1.art = table2.cross_art WHERE table2.art = 11

потом удобнее....

Неактивен

 

Board footer

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