Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Prawidlowe laczenie tabel
Forum PHP.pl > Forum > Przedszkole
JamalBIG
Witam

Czy moglby ktos przeanalizowac moje zapytanie do bazy danych w ktorym chcialem polaczyc wyniki z dwoch tabel ale najwyrazniej mam jakis blad bo nie mam zadnego wyniku...

  1. <?php
  2. $sql = $db->sql_query("SELECT d.*, t.* FROM 'nuke_downloads_downloads' d LEFT JOIN t 'torrent_torrents' WHERE d.title OR d.version OR t.search_text LIKE '%$search%' DESC");
  3. while ($wynik = $db->sql_fetchrow($sql)) {
  4. $lid = $wynik['d.lid'];
  5. $title = $wynik['d.title'];
  6. $id = $wynik['t.id'];
  7. $name = $wynik['t.name'];
  8.  
  9. echo "$lid - $title";
  10. echo "$id - $name";
  11. }
  12. ?>
Suh
Witam,
2 rzeczy wpadły mi w oko.

- w momencie gdy masz łączenie LEFT JOIN wydaje mi się, że najpierw powinna być podana nazwa tabeli, a dopiero po niej alias,

- druga sprawa.. jeżeli łączysz tabele za pomocą LEFT JOIN to powinieneś użyć dodatkowo klauzuli USING(arg), gdzie argument jest kolumną o takiej samej nazwie w obu tabelach, lub ewentualnie warunku ON np.. ON d.lid == t.id. Bo za pomocą WHERE ty tylko wydobywasz ważne dla Ciebie rekordy, ale nie łączysz tabel !

- ważne jest też czy tabela t ma rekordy pasujące (właśnie za pomocą łaczenia USING / ON) do tabeli p, bo ona jest właśnie dołączana do tej tabeli, a nie odwrotnie.

Pzdr.
JamalBIG
A moglbys mi jakos podpowiedziec jak polaczys prawidlowo te dwie tabele?

Tabela nuke_downloads_downloads ma strukture: LID | TITLE | NAME | VERSION
Tabela torrent_torrents: ID | NAME | SEARCH_TEXT

  1. SELECT d.*, t.* FROM 'nuke_downloads_downloads' d LEFT JOIN 'torrent_torrents' t ON d.title=t.name WHERE d.title OR d.version OR t.search_text LIKE '%$search%' DESC
Suh
To zależy co w obu tabelach będzie się powtarzało.. innymi słowy co będzie "wspólnym kluczem" dla obu tabel. Jeżeli name z tabeli t będzie mogło mieć takie same wartości co title z tabeli d, to warunek ON, który podałeś powinien w pełni załatwić sprawę.
JamalBIG
A czy wspolnym kluczem moze byc szukane slowo (wyrazenie)? Bo chodzilo mi o zrobienie wyszukiwarki ktora przeszukiwa by dwie tabele...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.