1

Temat: ERROR: syntax error at or near "WHERE"

Witam mam nowy problem z moją bazą nie wiem czemu jeśli próbuje wyciągnąć dane to mi wyskakuje błąd jak w tytule.
komendę mam taką:

SELECT NAZWA, NAZWA_ROZGR FROM KLUB JOIN KLUB_ROZGRYWKI JOIN ROZGRYWKI
WHERE RODZAJ_ROZGR LIKE 'LIGOWE';  


a bazę zrobiłem tak:

CREATE TYPE POZIOM AS ENUM ('PIERWSZA LIGA','LIGA MISTRZOW','LIGA EUROPEJSKA','REPREZENTACJA');

CREATE TYPE TYP_ROZGR AS ENUM ('LIGOWE','PUCHAROWE');

CREATE TYPE FAZA AS ENUM ('LIGA','ELIMINACJE','GRUPOWA','PUCHAROWA');

CREATE TYPE STATUS AS ENUM ('WYGRANY','PRZEGRANY','AKTYWNY');

CREATE TYPE TYP_KURSU AS ENUM ('ZWYCIESTWO_H', 'ZWYCIESTWO_A', 'REMIS', 'ZWYCIESTWO_H_1P', 'ZWYCIESTWO_A_1P', 'REMIS_1P', 'IL_GOLI<+2,5>', 'IL_GOLI<-2,5>', 'STRZ_GOLA_H', 'STRZ_GOLA_A');
CREATE TYPE KONTYNENT AS ENUM ('EUROPA','AFRYKA','AMERYKA POLUDNIOWA','AZJA','CONCACAF');

CREATE TABLE ROZGRYWKI (

    NAZWA_ROZGR VARCHAR (40) PRIMARY KEY,

    RODZAJ_ROZGR TYP_ROZGR NOT NULL,

    POZIOM_ROZGR POZIOM NOT NULL,

    REGION KONTYNENT NOT NULL
);


CREATE TABLE KLUB ( 

    ID_ZESP INT PRIMARY KEY,

    NAZWA VARCHAR(30) UNIQUE NOT NULL,

    KRAJ VARCHAR(30) NOT NULL,

    ROZGRYWKI VARCHAR (40)
    );


CREATE TABLE MECZ (

    ID_MECZU SERIAL PRIMARY KEY,

    ID_ZESP_H SERIAL,

    ID_ZESP_A SERIAL,

    ROZGRYWKI VARCHAR(40),

    FAZA_ROZGR FAZA,

    DATA DATE,

    IL_GOLI_H_1P SMALLINT DEFAULT(0),

    IL_GOLI_A_1P SMALLINT DEFAULT(0),

    IL_GOLI_H SMALLINT DEFAULT (0) CHECK (IL_GOLI_H >= IL_GOLI_H_1P ),

    IL_GOLI_A SMALLINT DEFAULT (0) CHECK (IL_GOLI_A >= IL_GOLI_A_1P )
);


CREATE TABLE KURSY (

    ID_MECZU SERIAL PRIMARY KEY,

    RODZAJ_KURSU TYP_KURSU NOT NULL,

    WYSOKOSC_KURSU REAL NOT NULL CHECK (WYSOKOSC_KURSU > 1.00)
);


CREATE TABLE KUPON (

    ID_KUPONU SERIAL PRIMARY KEY,

    ID_KURSU SERIAL,

    AKO REAL NOT NULL CHECK (AKO > 1.00),

    STAWKA INT NOT NULL CHECK (STAWKA > 1),

    EW_WYGRANA REAL NOT NULL,

    STATUS_KUPONU STATUS NOT NULL DEFAULT ('AKTYWNY')
);

create table klub_rozgrywki(
    nazwa_rozgr varchar (40),
    id_zesp int UNIQUE
);
ALTER TABLE MECZ ADD FOREIGN KEY (ROZGRYWKI) REFERENCES ROZGRYWKI (NAZWA_ROZGR) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE KURSY ADD FOREIGN KEY (ID_MECZU) REFERENCES MECZ (ID_MECZU) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE KUPON ADD FOREIGN KEY (ID_KURSU) REFERENCES KURSY (ID_MECZU) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE KLUB_ROZGRYWKI ADD foreign key(nazwa_rozgr) references rozgrywki (nazwa_rozgr) on delete cascade on update cascade;
ALTER TABLE KLUB_ROZGRYWKI ADD foreign key(id_zesp) references klub (id_zesp) on delete cascade on update cascade;

Mam tą cholerną bazę skończyć do jutra helllllllllllllllllllllp please.

2

Odp: ERROR: syntax error at or near "WHERE"

Nigdy nie lubiłem joinów ale powodem bledu jest brak nawiasów i sekcji 'on' (prawdpodobnie smile)
Mozesz to samo zrobic tak

SELECT NAZWA, NAZWA_ROZGR FROM KLUB,KLUB_ROZGRYWKI,ROZGRYWKI
WHERE
KLUB.ID_ZESP=KLUB_ROZGRYWKI.ID_ZESP
AND ROZGRYWKI.NAZWA_ROZGR=KLUB_ROZGRYWKI.NAZWA_ROZGR
AND RODZAJ_ROZGR = 'LIGOWE';  

btw zamiast

 LIKE 'LIGOWE' 

użyć 

 = 'LIGOWE'