Diskuze: SQL INNER JOIN

PHP Nette Framework Nette framework SQL INNER JOIN

Aktivity (1)
Avatar
Filip Němec
Člen
Avatar
Filip Němec:20. července 15:32

Ahoj :-) Potřeboval bych tento SQL dotaz převést do nette.

SELECT answers.post, users.username FROM answers INNER JOIN users ON answers.author = users.id;

Používám DatabaseExplorer. Zkoušel jsem to různě kombinovat. Jednak teda nevím, jak by to mělo správně vypadat a za druhé mi to vyhazuje, že answers nemá referenci na users. Co jsem tak hledal, tak je potřeba vytvořit referenci a FOREIGN KEY, ale vůbec jsem nepochopil která tabulka má mít referenci na kterou a k jakému sloupci přidat ten FK. Byl by tu, prosím, někdo ochotný natolik, aby mi to nějak vysvětlil a ukázal řešení? Moc děkuji předem :-)

 
Odpovědět 20. července 15:32
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Filip Němec
Petr Čech:20. července 16:13

Musíš si nastudovat, jak v databázi fungují cizí klíče a celé se ti to vyjasní :)
https://www.w3schools.com/…reignkey.asp

Nahoru Odpovědět 20. července 16:13
the cake is a lie
Avatar
Filip Němec
Člen
Avatar
Odpovídá na Petr Čech
Filip Němec:20. července 16:58

Tak jsem přidal klíč:

ALTER TABLE answers
ADD FOREIGN KEY (author) REFERENCES users(id);

A dotaz ve třídě:

...->where('answers.author = users.id');

A stále mi to píše:

No reference found for $answers->users.

 
Nahoru Odpovědět 20. července 16:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.