Автор Тема: хитрый SQL  (Прочитано 4376 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kubik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
хитрый SQL
« : 19 Апреля 2002, 00:18:51 »
Помогите написать SQL запрос для:
есть две таблици:
   spisok        info
|--|--|--|--|  |--|----|
|id|c1|c2|c3|  |id|name|
|--|--|--|--|  |--|----|
| 1| 1| 0| 0|  | 1|xxx1|
| 2| 0| 0| 0|  | 2|xxx2|
| 3| 1| 1| 0|  | 3|xxx3|
| 4| 2| 0| 0|  | 4|xxx4|
| 5| 3| 0| 1|  | 5|xxx5|
|--|--|--|--|  |--|----|
поля c1,c2,c3 в таблице spisok являются указателями на id в info
в итоге надо получить результируюшую выбору
| 1|xxx1|
| 3|xxx1|
| 3|xxx1|
| 4|xxx2|
| 5|xxx3|
| 5|xxx1|

можно ли такое сделать одним SQL запросом? мысли шлите на serg@ens.ru

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
хитрый SQL
« Ответ #1 : 19 Апреля 2002, 10:03:22 »
Цитировать
можно ли такое сделать одним SQL запросом?

Можно. Тройной LEFT JOIN, но лучше сделать последовательно тремя запросами.
2B OR NOT 2B = FF

Оффлайн Kubik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
а пример...
« Ответ #2 : 19 Апреля 2002, 10:07:18 »
Спасибо за ответ. Можно привести пример? Кстити, у меня этих c1,c2,c3...,c16, но можно и для трех.

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
хитрый SQL
« Ответ #3 : 19 Апреля 2002, 10:34:10 »
Цитировать
Спасибо за ответ. Можно привести пример? Кстити, у меня этих c1,c2,c3...,c16, но можно и для трех.

select a.id,b.name from spisok as a left join info as b on a.c1 = b.id
select a.id,b.name from spisok as a left join info as b on a.c2 = b.id
и т.д.
2B OR NOT 2B = FF

Оффлайн Kubik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
re
« Ответ #4 : 19 Апреля 2002, 10:38:23 »
дык это очевидно. мне то надо одним запросом без UNION и других отсутствующих в MySQL 3.x прибомбасов!!!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
хитрый SQL
« Ответ #5 : 19 Апреля 2002, 11:54:01 »
Цитировать

дык это очевидно. мне то надо одним запросом без UNION и других отсутствующих в MySQL 3.x прибомбасов!!!

Русским по бэкграунду написал, что так лучше не делать.
2B OR NOT 2B = FF

Оффлайн Kubik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
хитрый SQL
« Ответ #6 : 19 Апреля 2002, 12:03:55 »
причем тут лучьше или хуже? надо одним запросов, надо!

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
хитрый SQL
« Ответ #7 : 19 Апреля 2002, 15:08:02 »
Kubik

Цитировать
Можно. Тройной LEFT JOIN
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Kubik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как????
« Ответ #8 : 19 Апреля 2002, 17:25:22 »
пример дайте тупому.....пожалуйсто

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28