|
|
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть таблицы t1 (поля Id, tblName) и t2 (поля Id, some1, some2). Допустим в t1 такие данные: Id tblName 1 t2 2 t3 Таблицы связаны по полю Id. Возможно ли сделать такой запрос, чтобы данные были получены из двух таблиц как JOIN, но при этом имя второй таблицы бралось из поля 1-й таблицы. То есть я зпрашиваю данные из t1, получаю поле tblName='t2' и тут же делаю JOIN на таблицу t2 и получаю остальные поля. Если в tblName='t3', то JOIN идет на таблицу t3 и т. д. Или придется обходиться двумя запросами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 14:10:34 |
|
||
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
Нет. Обходиться двумя, тремя etc... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 14:38:35 |
|
||
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
Да. Либо смотри в сторону PREPARE, если подойдет под задачу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 21:24:24 |
|
||
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
Я делал такой вариант для поля таблицы с колонками: last_ability, pck, grd, drb... В last_ability - стоит какую котонку нужно умножать на 10. И с помощю такой конструкции, срабатывало: Select (CASE `last_ability` WHEN 'pck' THEN `pck` WHEN 'grd' THEN `grd` WHEN 'drb' THEN `drb` WHEN 'pos' THEN `pos` WHEN 'rng' THEN `rng` WHEN 'pas' THEN `pas` WHEN 'str' THEN `str` WHEN 'acc' THEN `acc` ELSE '0' END) *10 From TEST Если скончаемое и извесное количество таблиц, то думаю также можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 00:25:19 |
|
||
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
Steven13 Если скончаемое и извесное количество таблиц, то думаю также можно сделать. Нет. Нельзя по-любому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 09:33:30 |
|
||
|
Сформировать хитрый запрос
|
|||
|---|---|---|---|
|
#18+
я так понял 3 таблицы: t1 (поля Id, tblName) и t2 (поля Id, some1, some2) t3 (поля Id, some1, some2) Код: plaintext В результате мы получаем одним запросом то что нужно. Если больше 2 таблиц, то просто использовать CASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 20:04:31 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1853817]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
202ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 522ms |

| 0 / 0 |
