Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Left Join
Forum PHP.pl > Forum > Przedszkole
dk1342
Tworzę wyświetlanie newsów, i nie chce tworzyć pięć różnych zapytań które bedą np. wyciągały nazwę kategorii, nick autora, ilość ocen lub komentarzy tylko jakby dało rade to umieścić to w jednym zapytaniu.

Mam takie tabele:
news:
news_id
news_kategoria_id
news_autor_id
news_tresc

kategorie:
kategoria_id
kategoria_czego

I na razie udało mi się złożyć jedno zapytanie którę wyciąga newsy i nazwę kategorii:

  1. $sql = "SELECT bcms_newsy.*, bcms_kategorie.kategoria_tytul "."FROM bcms_newsy LEFT JOIN bcms_kategorie "."ON bcms_newsy.news_kategoria_id = bcms_kategorie.kategoria_id";

Ok i ładnie czyli wyciąga nazwę jeśli news_kategoria_id == kategoria_id, i chciałbym do tego dodać jeszcze jeden "warunek" if kategoria_czego == 1

Próbowałem tak
  1. $sql = "SELECT bcms_newsy.*, bcms_kategorie.kategoria_tytul "."FROM bcms_newsy LEFT JOIN bcms_kategorie "."ON bcms_newsy.news_kategoria_id = bcms_kategorie.kategoria_id and bcms_kategorie.kategoria_czego = 1";

ale wywalało
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...

Jak to zrobić ?
Jeżeli już to rozwiążemy to da rade dodać do tego kolejne joiny które by wyciągały nick autora ? if bcms_newsy.news_autor_id == bcms_users.user_id ?
skowron-line
Co tam robi
Cytat
"."
questionmark.gif

Dodaj
Kod
echo mysql_error();

lub zrzuc zapytanie na ekran.
Wiochi
Jeżeli dobrze rozumiem intencje to dodatkowy warunek powinieneś umieścić w klauzuli WHERE a nie w warunku łączenia tabel.

  1. $sql = "SELECT bcms_newsy.*, bcms_kategorie.kategoria_tytul "."FROM bcms_newsy LEFT JOIN bcms_kategorie "."ON bcms_newsy.news_kategoria_id = bcms_kategorie.kategoria_id WHERE bcms_kategorie.kategoria_czego = 1";
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.