Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie MySql pilne!
Forum PHP.pl > Forum > Bazy danych > MySQL
imiglis
Witam!!!

Mam takie pytanie jak wydac zapytanie MySql tak zeby zostala wyswietlony modeli i odpowiednie marki dla niego??



  1. CREATE TABLE tmarka (
  2. idtmarka INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. nazwa_marki VARCHAR(20) NULL,
  4. PRIMARY KEY(idtmarka)
  5. );
  6.  
  7. CREATE TABLE tmodel (
  8. idtmodel INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  9. nazwa_modelu VARCHAR(20) NULL,
  10. PRIMARY KEY(idtmodel)
  11. );
  12.  
  13. CREATE TABLE tmodel_has_tmarka (
  14. tmodel_idtmodel INTEGER UNSIGNED NOT NULL,
  15. tmarka_idtmarka INTEGER UNSIGNED NOT NULL,
  16. PRIMARY KEY(tmodel_idtmodel, tmarka_idtmarka),
  17. INDEX tmodel_has_tmarka_FKIndex1(tmodel_idtmodel),
  18. INDEX tmodel_has_tmarka_FKIndex2(tmarka_idtmarka)
  19. );
wijet
  1. SELECT marka.nazwa_marki,model.nazwa_modelu
  2. FROM tmarka marka,tmodel model,tmodel_has_tmarka j
  3. WHERE marka.idtmarka = j.tmarka_idtmarka AND model.idtmodel = tmodel_idtmodel


Nazwy kolumn to wybrales koszmarne poco idtmodel wystarczy samo id skoro wiadomo ze to tabela tmodel
Ja bym nie robil trzeciej tabeli do laczenia, jest nie potrzebna, na moj rozum to dany model jest jednej marki
wiec w tabeli tmodel dodal bym tylko pole id_marki
imiglis
Masz racje z ta tabela łączaca, ale ja mam jeszcze dodac dwie tabele pojemnosc silnik i rocznik prdukcj wiec jak to najoptymalniej zrobic?

dzieki za pomoc
wijet
Domyslam sie ze te tabele sa potrzebne do jakiejs tabeli glownej przechowujacej konkretne auta,
ja bym zrobil w tej tabeli z autami takie pola id_marki,id_modelu,pojemnosc_silnika,rok_produkcji + jakies inne pola ktore potrzebujesz, i nie rozbijal pojemnosci silnika i roku produkcji na osobne tabele.
imiglis
wlasnie nie wiem czy dac to w jednej tabeli bo to ma wygladac niemwiecej jak na tej stronie http://www.autoteile-shopping.de/default.asp?lang=pl zeby uzytkownik kliknol najpierw na marke i wyswietla sie potem modele potem rok produkcji a potem pojemnosc i tak dalej. wiec nie wiem jak to zrobic zeby to spoko dzialalo.

jeszcze jedno bez tej tabeli laczacej wygladalo by to tak
  1. CREATE TABLE marka (
  2. idmarka INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. nazwa_marki VARCHAR(20) NULL,
  4. PRIMARY KEY(idmarka)
  5. );
  6.  
  7. CREATE TABLE model (
  8. idmodel INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  9. idmarka INTEGER UNSIGNED NOT NULL,
  10. nazwa_modelu VARCHAR(20) NULL,
  11. PRIMARY KEY(idmodel,idmarka),
  12. INDEX model_FKIndex1(idmarka)
  13. );


questionmark.gifquestionmark.gif?
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.