Связанные таблицы в PostgreSQL

Модератор: Модераторы разделов

SatanaClause
Сообщения: 106

Связанные таблицы в PostgreSQL

Сообщение SatanaClause »

Есть две таблицы, одна udb_build с полями id и build, а другая udb_room c полями id, room и build_id

udb_build
id | build
1 | zdanie 1
2 | zdanie 2
3 | zdanie 3

udb_room
id | room | build_id
1 | 001 | 1
2 | 002 | 1
3 | 001 | 2
4 | 003 | 3

впринципи все достаточно просто, если делать в два запроса как я делал раньше на mysql, именно по этому я перешел на постгресс, так как знаю что тут можно делать человесие связанные таблицы. Сейчас я сделал для поля udb_room.build_id
build_id integer REFERENCES udb.build (id)

Когда вставляешь запись, то все хорошо, если udb_build.id отcутcтвует то постгресс ругается, но вот когда делаю SELECT * FROM udb_room то получается

1 | 001 | 1
2 | 002 | 1
3 | 001 | 2
4 | 003 | 3

а хотелось бы

1 | 001 | zdanie 1
2 | 002 | zdanie 1
3 | 001 | zdanie 2
4 | 003 | zdanie 3

как это реализовать в один запрос???
Я люблю людей, люблю когда их нет;
Я бы вышел на болкон, и разрядил бы пистолет!
Спасибо сказали:
Аватара пользователя
Cap. J2A
Сообщения: 300

Re: Связанные таблицы в PostgreSQL

Сообщение Cap. J2A »

Учи матчасть, ANSI SQL http://www.cs.ifmo.ru/education/documentat..._kg/index.shtml

Код: Выделить всё

SELECT r.id, r.room, b.build
FROM udb_room AS r, udb_build AS b
WHERE r.build_id = b.id

работает на любом SQL-сервере, в том числе и на MySQL.

Либо специфично для Postgre:

Код: Выделить всё

SELECT r.id, r.room, b.build
FROM udb_room AS r
INNER JOIN udb_build AS b ON (r.build_id = b.id)
Debian GNU/Linux 3.1 2.6.12-1-k7 на AXP1700+/nF2/Radeon 9600 (debsmart)
Debian GNU/Linux 3.1 2.6.15.1 на hp compaq nx9020 (moby)
:Wq
E492: Not an editor command: Wq
Спасибо сказали:
SatanaClause
Сообщения: 106

Re: Связанные таблицы в PostgreSQL

Сообщение SatanaClause »

хмм, чувствую себя идиотом :) пол документации перерыл... оказывается не в ту сторону копал... Я предпологал что эту замену должна делать бд а не запрос. Огромное спасибо, так еще проще чем я думал.

я про такой способ даже неподумал :)

Спасибо
Я люблю людей, люблю когда их нет;
Я бы вышел на болкон, и разрядил бы пистолет!
Спасибо сказали: