Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] SELECT w tabeli
Forum PHP.pl > Forum > Przedszkole
vanvar
Witam,
Mam pewien problem. Otóż posiadam 3 tabele:
  1. CREATE TABLE katalogi (
  2. id int AUTO_INCREMENT PRIMARY KEY,
  3. url char(30) NOT NULL
  4. ) ENGINE=InnoDB;
  5.  
  6. CREATE TABLE projekty (
  7. id int AUTO_INCREMENT PRIMARY KEY,
  8. title char(30) NOT NULL
  9. ) ENGINE=InnoDB;
  10.  
  11. CREATE TABLE STATUS (
  12. idstatus int AUTO_INCREMENT PRIMARY KEY,
  13. id_projektu int,
  14. id_katalogu int,
  15. FOREIGN KEY (id_projektu) REFERENCES projekty(id),
  16. FOREIGN KEY (id_katalogu) REFERENCES katalogi(id)
  17. ) ENGINE=InnoDB;


W tabeli katalogi mam kilka (powiedzmy 4) adresów katalogów stron. W tabeli projekty mam jeden projekt - stronę www, którą dodaje do katalogów. Tabela status zawiera operacje dodania katalogu do projektu. I teraz tak:

Mam katalogi:
a.com
b.com
c.com
d.com

projekty:
mojawitryna

oraz status:
1 1, czyli pierwszy projekt dodałem do pierwszego katalogu.

Pytanie: jak wyświetlić katalogi, do których mój projekt już został dodany oraz katalogi, do których projekt nie został jeszcze dodany? Na powyższym przykładzie pierwszy select ma zwrócić:
a.com
a drugi:
b.com
c.com
d.com

Uff, chyba wszystko smile.gif
Z góry dziękuję za pomoc.

Pierwsze zaptanie chyba mam, a co z drugim, ma ktos pomysl?

  1. $q = 'select * from katalogi where not id=(select id_katalogu from status s where s.id_projektu='.$_GET['project'].')';
user123
może coś takiego:

pierwsze:
  1. SELECT katalogi.url FROM katalogi INNER JOIN STATUS ON STATUS.id_katalogu=katalogi.id WHERE STATUS.id_projektu=1


drugie:
  1. SELECT katalogi.url FROM katalogi INNER JOIN STATUS ON STATUS.id_katalogu!=katalogi.id WHERE STATUS.id_projektu=1


to tak z głowy więc może być nie do końca poprawnie;)
vanvar
  1. $q='select * from katalogi k where k.id in (select id_katalogu from status s where s.id_projektu='.$_GET['project'].')';


Wymyśliłem coś takiego i działa :-)
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.