Problem z zapytaniem SQL

0

Nie potrafie napisać zapytania SQL i nie wiem zresztą czy da się napisać takie zapytanie jak chce. Mam przykładowe tabele:

CREATE TABLE `tabela1` (
  `id` INT NOT NULL,
  `tekst` VARCHAR NOT NULL,
  PRIMARY KEY  (`id`)
)

CREATE TABLE `tabela2` (
  `id` INT NOT NULL,
  `id_tabel1` INT NOT NUL,
  `data` TIMESTAMP,
  PRIMARY KEY  (`id`)
)

Nie wszystkie pozycje z tabela1 maja odpowiednik w tabela2, ale wszystkie pozycje z tabela2 mają odpowiedniki w tabela1. Chce uzyskać wszystkie rekordy z tabela1 i tabela2, nawet jeśli nie ma w tabela2 powiązanego rekordu z rekordem w tabela1 (wtedy w kolumnie data ma być wartość null).
Myślałem żeby zrobić to w ten sposób.

select P.ID, P.TEKST, B.DATA from TABELA1 P, TABELA2 B where P.ID=B.ID_TABELA1 until select P.ID, P.TEKST, null as DATA from TABELA1 P

Niestery nie można połączyć tego, bo serwer nie wie jakiego typu jest "null as DATA".
Wyczerpały mi się już pomysły, mam nadzieje że znajdzie się ktoś kto może mi pomóc.

PS. Używam InterBase 2007

0

A nie możesz użyć zwykłego RIGHT OUTER JOIN ?
// zapytanie zmodyfikuj do własnego silnika. Nie znam składni dla IB

SELECT
  tabela1.id,
  tabela1.tekst

  tabela2.id,
  tabela2.id_tabel1,
  data
FROM
  tabela2
RIGHT OUTER JOIN
  tabela2 ON tabela2.id_tabel1 = tabela1.id;

1 użytkowników online, w tym zalogowanych: 0, gości: 1