Autor | Zpráva | ||
---|---|---|---|
CDG Profil * |
#1 · Zasláno: 31. 10. 2014, 17:15:31
Dobrý den, mám databázi aut a potřebuji vypsat od daného vozu jeho další verze. Například budu mít základní model Škoda Octavia a budu chtít k ní vypsat Škoda Octavia RS, Škoda Octavia Scout, Škoda Octavia Ambition...
Mám tyto entity: E auta: ID_auto, znacka, model, motor, vykon E verze: ID_zaklad, ID_auto data: auta(1, Škoda, Octavia, 1.4TSI, 66) auta(2, Škoda, Octavia RS, 2.0TDI, 90) auta(3, Škoda, Octavia Scout, 1.6TDI, 80) verze(1, 2) verze(1, 3) Když budu na webu mít otevřenou Škoda Octavia (ID = 1), tedy základní model, tak chci aby tam byl výpis dalších verzí tohoto vozu (ID = 2, 3) a to stejné i pro podverze - například budu na kartě vozu s ID = 2, tak chci aby tam byly zobrazeny i ty s ID = 1, 3 Půjde to udělat jedním dotazem? Děkuji za radu |
||
Xethilos Profil |
V kategorii pro škodu
SELECT * FROM auta WHERE znacka = 'Škoda' Aby se nevypsal duplicitní záznám SELECT * FROM auta WHERE znacka = 'Škoda' && id_auto != 1 Edit: Úprava model na znacka |
||
CDG Profil * |
#3 · Zasláno: 31. 10. 2014, 17:36:17
Díky za radu. Ale asi by bylo lepší vypisovat podle ID a propojovat ty dvě tabulky. může se právě stát, že se budou lišit modelem a stejně k sobě budou patřit. šlo by to?
|
||
Xethilos Profil |
#4 · Zasláno: 31. 10. 2014, 17:42:49
Aha moje chyba je to (Přepsal jsem se):
SELECT * FROM auta WHERE znacka = 'Škoda' SELECT * FROM auta AS a LEFT JOIN verze AS v ON v.id_auto = a.id_auto WHERE a.znacka = 'Škoda' Značkou by se to lišit nemělo. Jestli to chceš podle id, tak změna návrhu databáze. |
||
CDG Profil * |
#5 · Zasláno: 31. 10. 2014, 17:48:16
Jak by měla ta změna databáze vypadat?
|
||
Xethilos Profil |
car_id (PRIMARY, AUTO_INC), car_name
Př. car(1, 'Škoda'); car(2, 'Opel'); model_id (PRIMARY, AUTO_INC), car_id (FOREIGN), model_name Př. model(1, 1, 'Octavia'); model(2, 1, 'Scout'); model(3, 2, 'Astra'); version_id (PRIMARY, AUTO_INC), model_id (FOREIGN), version_number Př. version(1, 1, 1); version(1, 1, 5); Dotaz pro všechny modely aut pro škodovku SELECT * FROM model WHERE car_id = 1 |
||
CDG Profil * |
#7 · Zasláno: 31. 10. 2014, 18:17:40
No to nebude možné, ta databáze už je funkční, zákazník přišel s touhle změnou až ted. nepůjde to nějak vyřešit s tím mým řešením? potřebuji nějak prostě sdružit podobné vozy, tak abych je mohl na kartě vozu vypsat...
|
||
abc Profil |
#8 · Zasláno: 31. 10. 2014, 21:17:25
CDG:
Pokud znáš id_zaklad, tak např. takto: SELECT * FROM auta WHERE id_auto IN (SELECT id_auto FROM verze WHERE id_zaklad = 1) |
||
Časová prodleva: 9 let
|
0