Jump to content
php.lv forumi

Recommended Posts

Posted

Man ir DB, kur ir 3 lauki. ID, auto ID, bildes nosaukums. Vairāk darba būs ar diviem laukiem - ar ID un auto_id. Man vajag izvilkt laukā no katras mašīnas pirmo bildi. Bilde

Paldies Jums!

Posted

Nezinu vai tas labākais un optimālākais veids, bet šādi var:

SELECT p.car_id, (SELECT p2.photo FROM car_photos p2 WHERE p2.car_id = p.car_id ORDER BY p2.id ASC LIMIT 1 ) as first_image
FROM car_photos p
GROUP BY p.car_id

 

Galvenais uzlikt indeksu car_id kolumnai.

Posted
Visideālākais varints jau būtu pieglabāt bildes nosaukumu pašā auto tabulā.

vai paskatijies kada vinjam ir bilzju tabulas struktura? Zoom pat bija pacenties un smuki vinju uzzimeejis ...

Tava varijanta naktos likt tabulai klaat tik laucinjus cik bilzju ir .....

----

Zoom --> DB struktura tev ir pilniigi pareiza ;)

Risinajums ir vienkarsh pieliec klat velvienu kollonu /KARDINALITATE / ar tipu TINYIN

kur pie pirmas bildes pieglabasanas pieliec klaat 1 (pirma ) 0 (parejas)

-----

Vai arii vispar vari vinjas visas numureet , tas dos iespeju vinjas attelot taadaa secibaa kaadaa velesies & izvilk varesi ar parastu JOIN paliidzibu ...

----

P.S. + iesaku pieglabat arii bildes izmerus (WID/HEG)

Posted

andrisp --> jebkuraa gadijumaa tas ir nepareizs piegajiens... sadi varetu galabat bildi kura buus tikai viena ;)

teiksim personas identifikacijai .....

Posted (edited)

Nu - ja glabaa nevis nosaukumu, bet ID (kaa mainphoto_id) no bilzhu tabulas, Tad tas nepavisam nav nepareizs risinaajums.

 

Risinajums ir vienkarsh pieliec klat velvienu kollonu /KARDINALITATE / ar tipu TINYIN

kur pie pirmas bildes pieglabasanas pieliec klaat 1 (pirma ) 0 (parejas)

 

Vot tieshi shis no normalizaacijas viedoklja ir nepareizi. :)

Edited by andrisp
Posted (edited)

Kāpēc tad nepareizi? Un ja nu vajadzēs no katra auto ņemt piemēram divas vai pamainīt kuru rādīt tikai kādam auto un citiem atstāt pa vecam?

Manuprāt ieviest lauku rādāma/nerādama ir tikai normāli.

Edited by mounkuls
Posted (edited)

Nu tad ar starptabulām. :)

 

Bet vispār, protams, praktiskā ziņā "labāk" būs izmantot GreyWolf variantu. Mazāk problēmu.

 

PS. Bet vispār jau autors tieši lūdza tikai pirmo bildi.

Edited by andrisp
Posted

Neraksti vieninieciņu "pirmajā" bildē. Tas ir nepareizi. Un kļūdaini.

Drīzāk dari kā tev saka ar to "pirmās" bildes id glabāšanu auto tabulā.

  • 2 weeks later...
Posted (edited)

Kāpēc gan nevarētu vienkārši šādi?

 

SELECT auto_id,bildes_id FROM bildes GROUP BY auto_id

 

Protams, ja reiz vēlas pamainīt pirmo bildi, tad gan labāk izmanto mārča variantu.

Edited by crmind
Posted

Tāpēc ka nav garantēts, ka katrā auto_id grupā tiks izvēlēts ieraksts ar mazāko id. Ierakstiem atgriežamajā selektē netiek pielietota nekāda īpaša kārtošāna. Jāpieņem, ka tie tiek atgriezti pilnīgā random kārtībā.

Posted

nja, MySQL sako šajā ziņā - citas normālas DBVS izmestu kļūdas paziņojumu, mēģinot

SELECT auto_id,bildes_id FROM bildes GROUP BY auto_id

jo `bildes_id` nav grupas funkcija - būtu jālieto, piemēram, MAX(bildes_id)

MySQL vienkārši iebaro lietotājam random datus.

×
×
  • Create New...