|
Получение данных из двух таблиц, связанных с одной общей
|
|||
---|---|---|---|
#18+
Привет всем! Я с Postgres-ом еще только знакомлюсь. Мне нужно выполнить задачу, а я даже не знаю с какой стороны подходить к ее решению. У меня есть три таблицы Users, Groups, Urls. Users связана один к одному с Urls Groups связана один к одному с Urls У Urls есть Urls.id, Urls.url У Users есть Users.urls_id -внешний ключ У Groups есть Group.urls_id -внешний ключ Мне нужен такой запрос, который бы по Urls.url смотрел есть ли данные по данному url в Users, и есть ли в Groups и выводил бы айдишник юзера или группы. Также, желательно чтобы из запроса было понятно Чей это айдишник, группы или юзера.. (то есть изначально не ясно в какой таблице Users или Groups будет связанная с Urls запись) Интересует вопрос по оптимизации этого дела, хотелось бы уместить все в один запрос и работало как можно быстрее. Мои ковыряния навели меня пока на такие вещи... SELECT groups.id, groups.url_id, urls.url FROM groups JOIN urls ON groups.url_id = urls.id WHERE urls.url = 'someurl'; SELECT user.id, users.url_id, urls.url FROM users JOIN urls ON users.url_id = urls.id WHERE urls.url = 'someurl'; как это объединить и по правильному пути ли я иду, я не понимаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 16:15 |
|
Получение данных из двух таблиц, связанных с одной общей
|
|||
---|---|---|---|
#18+
Попробовал через CASE, вроде работает как надо, но какое-то пугающее нагромождение запросов получилось, и непонятно какой из айдишников возвращен Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 16:46 |
|
Получение данных из двух таблиц, связанных с одной общей
|
|||
---|---|---|---|
#18+
Benderbej, вопрос решен, спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2019, 18:02 |
|
Получение данных из двух таблиц, связанных с одной общей
|
|||
---|---|---|---|
#18+
BenderbejПривет всем! Я с Postgres-ом еще только знакомлюсь. Мне нужно выполнить задачу, а я даже не знаю с какой стороны подходить к ее решению. У меня есть три таблицы Users, Groups, Urls. Users связана один к одному с Urls Groups связана один к одному с Urls У Urls есть Urls.id, Urls.url У Users есть Users.urls_id -внешний ключ У Groups есть Group.urls_id -внешний ключ Мне нужен такой запрос, который бы по Urls.url смотрел есть ли данные по данному url в Users, и есть ли в Groups и выводил бы айдишник юзера или группы. Также, желательно чтобы из запроса было понятно Чей это айдишник, группы или юзера.. (то есть изначально не ясно в какой таблице Users или Groups будет связанная с Urls запись) Интересует вопрос по оптимизации этого дела, хотелось бы уместить все в один запрос и работало как можно быстрее. Мои ковыряния навели меня пока на такие вещи... SELECT groups.id, groups.url_id, urls.url FROM groups JOIN urls ON groups.url_id = urls.id WHERE urls.url = 'someurl'; SELECT user.id, users.url_id, urls.url FROM users JOIN urls ON users.url_id = urls.id WHERE urls.url = 'someurl'; как это объединить и по правильному пути ли я иду, я не понимаю... почему не UNION? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2019, 09:41 |
|
|
start [/forum/topic.php?fid=53&fpage=42&tid=1995240]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 138ms |
0 / 0 |