Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skomplikowana sprawa z relacjami
Forum PHP.pl > Forum > Bazy danych > MySQL
AxZx
witam

zrobilem takie tabele w bazie:

wydanie
-------
wyd_id
wyd_ktory
wyd_numer
wyd_miesiac
wyd_rok
wyd_data
wyd_licznik
wyd_status


artykuły
-------
art_id
art_nazwa
art_tresc
art_autor
art_licznik
wyd_id
dzial_id


dzial
-------
dzial_id
dzial_nazwa


i teraz wymyslilem sobie takie zadanie dla php:
mam jakies numer wydania i wyswietlam po kolei
dzialy i w kazdym dziale artykuly z art_id=dzial_id

te artykuly z dzialow to
  1. "SELECT *
  2. FROM artykuly WHERE dzial_id = '".$dzial['dzial_id']."' AND wyd_id = '".$wydanie['wyd_id']."'"


a jak wyswietlic tylko te dzialy ktorych artykuly sa przypisane do danego wydania ?
pogubilem sie w tych zapytaniach
moze jakas madra glowa pomoze ?smile.gif

czy moze mam jeszcze utowrzyc kolumne wyd_id w tabeli dzial
ale to bedzie tak ze moze byc dzial raporty w kilku wydaniach
i wtedy powtarzac sie bedzie
jak to rozwiazac?
jak cos nie jasno wytlumaczyl a jest ktos chetny pomoc to prosze powiedziec objasnie jeszcze jasniej smile.gif

z gory wielkie dzieki za pomoc
lorix
  1. SELECT dzial.*
  2. FROM dzial ((INNER JOIN artykuly ON artykuly.dzial_id=dzial.dzial_id) INNER JOIN wydanie ON artykuly.wyd_id=wydanie.wyd_id AND wydanie.wyd_rok="2004") GROUP BY dzial.nazwa


może tak ? powinno dać nazwy działów w których znajdowały się artykuły wydane w 2004

Pozdrawiam
AxZx
dziekuje za odzew ale niestety sad.gif

Kod
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '((INNER JOIN artykuly ON artykuly.dzial_id=dzial.dzial_id) INNE
lorix
Może to przez te nawiasy winksmiley.jpg Sprawdze zaraz. Dopiero zaczynam się w to bawić

edit:

Tak - wywal nawiasy i tam chyba źle podałem nazwe jednego pola

Pozdrawiam
AxZx
to Twoje dziala po poprawce malej:

  1. SELECT dzial.*
  2. FROM dzial INNER JOIN artykuly ON artykuly.dzial_id=dzial.dzial_id INNER JOIN wydanie ON artykuly.wyd_id=wydanie.wyd_id AND wydanie.wyd_id='".$wydanie['wyd_id']."' GROUP BY dzial.dzial_nazwa



ale gdzies wyszukalem i wyszlo mi cos takiego

  1. SELECT dzial.*
  2. FROM dzial, artykuly, wydanie WHERE artykuly.dzial_id=dzial.dzial_id AND artykuly.wyd_id=wydanie.wyd_id AND wydanie.wyd_id='".$wydanie['wyd_id']."' GROUP BY dzial.dzial_nazwa
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.