Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlenie danych z dwóch tabel z relacją, Dwie proste tabele połączone relacją
tomeklogin
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.08.2009

Ostrzeżenie: (0%)
-----


Poniżej umieszczam strukturę tabel:

  1. CREATE TABLE rodzic(
  2. i INT UNSIGNED AUTO_INCREMENT,
  3. nazwa VARCHAR(40) NOT NULL,
  4. PRIMARY KEY (i),
  5. INDEX (nazwa)) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci
  6.  
  7. CREATE TABLE dziecko(
  8. od TINYINT(80) UNSIGNED NOT NULL,
  9. d0 INT UNSIGNED,
  10. d1 INT UNSIGNED,
  11. imie VARCHAR(80) NOT NULL,
  12. FOREIGN KEY (d0) REFERENCES rodzic(i) ON DELETE SET NULL ON UPDATE NO ACTION,
  13. FOREIGN KEY (d1) REFERENCES rodzic(i) ON DELETE SET NULL ON UPDATE NO ACTION,
  14. PRIMARY KEY (imie)) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci

Jak najefektywniej pobrać rodzica o danej nazwie oraz nazwy jego dzieci?
Najprościej można to zrobić 3 SELECT-ami, ale czy można jednym selectem te dane wydostać.
Czy będzie to bardziej efektywne?

Czekam na wasze roziwązania.

Ten post edytował tomeklogin 26.08.2009, 08:53:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zzeus
post
Post #2





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

Ostrzeżenie: (0%)
-----


  1. EXPLAIN SELECT R.nazwa FROM rodzic R, dziecko D WHERE (R.i=D.d0 OR R.i=D.d1) AND D.imie='Jan'


dostaniesz w odpowiedzi wszystkie informacje o tym czy zapytanie jest optymalne czy można je poprawić
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 17:05