|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
здравствуйте! не могу толком ничего придумать. к примеру, есть следующая конструкция три таблицы, первая в зависимости от значения одного из полей ссылается на данные либо второй, либо третьей таблицы. как лучше всего это реализовать? самый простой вариант - хранить указание на конкретную таблицу, как двойной ключ(в двух полях, либо блобом структуру типа (char*,int) или (int,int) - имя(номер) таблицы и номер строки в ней, считывать в одном запросе и в зависимости от результата формировать новый, записывая в поле from уже явно вторую или третью таблицы возможно ли это делать в одном sql запросе, т.е., внутри запроса определять таблицу для поля from? спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:03 |
|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
Запрос формируется в клиенте, вот и формируй строку запроса как надо в зависимости от того, что в нужном поле первой таблицы. А во второй и третьей таблице строки связывай с записями первой по id соответствующей записи первой таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:54 |
|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
запрос типа такой select tt1.*, tt2.sfield from t1 tt1, t2 tt2 where tt1.ufield in (..,..,..) and tt1.id=tt2.id union select tt1.*, tt3.ssfield from t1 tt1, t3 tt3 where tt1.ufield in (..,..,..) and tt1.id=tt3.id; ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:02 |
|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
ЯИра, мб, я не совсем вас понял) формировать запрос ЯИракак надо в зависимости от того, что в нужном поле первой таблицы - значит формировать один запрос на основе другого запроса, так? т.е, от обработки результатов запроса не уйти все равно. у меня вопрос, собственно, можно ли этого избежать, определяя нужную таблицу в основном запросе и запрашивая данные из неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:20 |
|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
аа, я на ваш первый ответ отвечал. ага, union по всем возможным вариантам, да, понял, как вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:22 |
|
помогите советом по связи таблиц
|
|||
---|---|---|---|
#18+
А еще можно так: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 17:25 |
|
|
start [/forum/topic.php?fid=54&fpage=26&tid=2009342]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 150ms |
0 / 0 |