Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacje wiele do wielu i tworzenie zapytania do bazy, proszę o poradę w optymalizacji zapytania do bazy
pejot
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 3.02.2008

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


Witam,

W zapytaniu będzie używane 21 możliwości różnych zmiennych które będą wprowadzane z formularza ale tak się zastanawiam czy dobrze podchodzę do tematu.

Baza wygląda tak:
5 tabel jedna z nich engine_has_model jest stworzona z relacji n:m

Proste zapytanie funkcjonują bardzo dobrze ale czy przy bardziej złożonych zapytaniach sprawdzi się ta konstrukcja.

  1. SELECT
  2. ma.mark AS 'Marka',
  3. mo.model AS 'Model',
  4. en.engine AS 'Silnik',
  5. sp.oe AS 'Pierwsze wyposażenie',
  6. sp.plt AS 'P/LT',
  7. sp.width AS 'Szerokość',
  8. sp.series AS 'Profil',
  9. sp.zr AS 'Typ opony A',
  10. sp.r AS 'Typ opony B',
  11. sp.rim AS 'Średnica koła',
  12. sp.li AS 'Indeks nośności',
  13. sp.si AS 'Indeks prędkości',
  14. sp.axle AS 'Oś',
  15. sp.rfxlc AS 'Dodatkowe oznaczenie',
  16. sp.pr AS 'Opasanie',
  17. sp.teren AS 'Typ samochodu',
  18. sp.barpartfront AS 'Ciśnienie przód',
  19. sp.barpartrear AS 'Ciśnienie tył',
  20. sp.barfullfront AS 'Ciśnienie przód obciążony',
  21. sp.barfullrear AS 'Ciśnienie tył obciążony',
  22. sp.special AS 'Homologacje'
  23.  
  24. FROM mark ma,
  25. model mo,
  26. engine en,
  27. engine_has_model ehm,
  28. spec sp
  29. WHERE ma.id = ehm.model_mark_id AND ma.id=mo.mark_id AND mo.id = ehm.model_id AND en.id=ehm.engine_id AND sp.id=ehm.spec_id AND ma.mark='AUDI' AND sp.oe='B' AND sp.width='185'


Proszę o jakieś wskazówki.

Ten post edytował pejot 27.03.2013, 23:24:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pejot
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 3.02.2008

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


Jednak nie było to takie trudne jak mi się wydawało i zrobiłem coś takiego:

  1. ...
  2. FROM
  3. engine_has_model ehm
  4. LEFT JOIN mark ma ON ma.id = ehm.model_mark_id
  5. LEFT JOIN model mo ON mo.id = ehm.model_id
  6. LEFT JOIN engine en ON en.id=ehm.engine_id
  7. LEFT JOIN spec sp ON sp.id=ehm.spec_id
  8. WHERE ma.mark='AUDI' AND sp.oe='B
  9.  


Czy taka konstrukcja jest ok?

Ten post edytował pejot 28.03.2013, 09:41:12
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: 24.12.2025 - 16:44