Edd_Layer
Дата: 14.12.2012 05:52:24
Привет!
столкнулся с такой ситуацией, дали базу и менять в ней ничего не хотят.
а то, что хотят получить от неё, показалось довольно странным, можно ли реализовать одну вещь, хочу спросить совета.
по порядку.
чтоб не отвлекаться на названия, в псевдоименах:
есть Table1
поля
- id_name1
- id_name2
- id_name3
....
есть Table2
поля
- id
- name
если нам надо получить в запросе name из второй таблицы по айдишнику из первой, делаем джоин и никаких проблем.
[syntax=mysql]
SELECT Table2.name
FROM Table1
LEFT OUTER JOIN Table2 ON (Table1.id_name1 = Table2.id)
[/syntax]
но проблема в том, что в Table2 записи под определенными айдишниками взаимосвязаны логически не только с id_name1 но и с id_name2 и с id_name3 из Table1.
и всё это хотят запрашивать одновременно.
т.е. фактически нам надо обращаться/выводить в результате запроса Table2.name не один раз.
если бы каждая взаимосвязь была в своей отдельной таблице, тогда бы проблем естественно вообще не было.
а вот тут я не понимаю как это обойти, может быть у sql есть какие-то средства для таких ситуаций, вложенные запросы или еще что?
прошу помочь, спасибо:)
Arhat109
Дата: 14.12.2012 05:57:02
Edd_Layer,
Ну раз Вы не хотите отвлекать(ся) на конкретные таблицы и вопросы, то тоже, дабы не писать чистый SQL:
А что Вам мешает сджойнить Т1 с Т2 сколько надо раз? Ну надо получить текстовку для трех полей - сделали 3 джойна, или сколько там... мешает-то что? :)
Edd_Layer
Дата: 14.12.2012 06:30:51
| Arhat109 |
|---|
Edd_Layer,
Ну раз Вы не хотите отвлекать(ся) на конкретные таблицы и вопросы, то тоже, дабы не писать чистый SQL:
А что Вам мешает сджойнить Т1 с Т2 сколько надо раз? Ну надо получить текстовку для трех полей - сделали 3 джойна, или сколько там... мешает-то что? :) |
вот тут я и не понимаю, как следует составить запрос
если добавить еще плюс один вот такой джоин:
LEFT OUTER JOIN Table2 ON (Table1.id_name2 = Table2.id)
ошибка: "имя таблицы "Table2" указано больше одного раза"
может все же конкретный запрос подскажете?:)