|
хитрый запрос на выборку
|
|||
---|---|---|---|
#18+
Есть две таблицы (Tbl1): Одна главная - в ней хранятся данные, а также номера описаний. Т.е. в ней есть несколько полей типа INT (fld1, fld2, fld3). Каждое поле является номером строки во второй таблице. Вторая таблица(Tbl2) имеет простую структуру - два поля: ID и текстовое значение(Desc). ID является номером строки с которым связаны поля из первой таблицы. Если делать просто SELECT * FROM Tbl1; то получаем набор чисел fld1, fld2 и т.п. А хочется что бы вместо них подставлялось значение поля Desc из Tbl2 с соответствующим ID. Чувствую что тут нужно использовать JOIN а вот как не знаю :) Вот такой вариант работает SELECT * FROM Tbl1 LEFT JOIN Tbl2 ON Tbl1.fld1=Tbl2.ID; но хочется большего :) Делаю вот так SELECT * FROM Tbl1 LEFT JOIN Tbl2 ON Tbl1.fld1=Tbl2.ID LEFT JOIN Tbl2 ON Tbl1.fld2=Tbl2.ID; В чем я неправ? И вообще возможно то что я хочу сделать одним SQL запросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2002, 21:24 |
|
хитрый запрос на выборку
|
|||
---|---|---|---|
#18+
Примерно так: Код: plaintext 1. 2. 3. 4. 5.
Названия полей подставь сам - времени нету! Если, что завтра отвечу более подробно! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2002, 23:07 |
|
хитрый запрос на выборку
|
|||
---|---|---|---|
#18+
Спасибо за помощь. Дело действительно оказалось, как мне подсказали, в расстановке алиасов. И нужный мне запрос выглядит примерно так: SELECT * FROM Tbl1 LEFT JOIN Tbl2 t1 ON Tbl1.fld1=t1.ID LEFT JOIN Tbl2 t2 ON Tbl1.fld2=t2.ID и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2002, 09:26 |
|
|
start [/forum/topic.php?fid=47&gotonew=1&tid=1856315]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
4ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 511ms |
0 / 0 |