Autor | Zpráva | ||
---|---|---|---|
dehtak Profil |
Ahoj potrebuji vytvorit tabulky pro kino tabulka events ve ktere jsou casy a tabulka movies ve ktere je film.
Jde mi o to to ze Film na nekolik promitacich casu. Ale vypis chci provadet tak, ze vyhledam casy a vlastne spojenim potrebuju aby mi to vratilo jeden film. Vubec netusim jak to provest. Vyresil jsem to tak ze jsem si nechal z databaze vypsat casy pak jsem v php projel ty casy a a od kazdeho casu vzal pouze 1 id filmu. To pak zadal do prikazu mysql. ........ "SELECT * FROM events WHERE time >=$timeNow AND time <= $maxTime ORDER BY time ASC".... $movie_id = []; foreach ($events as $event){if(!isset($movie_id[$event['movie_id']])){$movie_id[$event['movie_id']]=$event['movie_id']; }} $mi = implode (',',$movie_id); a pak jsem zadal druhej prikaz pro mysql "SELECT * FROM movies WHERE id IN ($mi)"; Ale tohle reseni neni to pravy orechovy . Nejde to udelat jednim prikazem v mysql ? Ze bych dal tabulce events movie_id cizi klic . Ale de o to ze ty eventy budu mazat a a nechci aby to nejak zasahovalo do tabulky filmu. S tema cizima klicema nemam moc skusenosti. Dalsi vec je ze v tabulce events mam radek is3D to znamena ze se bude film promitat ve 3D. Ale ten samej radek mam i v movies. Jelikoz film se defalutne promita ve 2D. Muze se ale stat ze v 8 hodin vecer se bude film promitat ve 3D , proto to mam i v eventech. Tdyz treba budu vypisovat film kterej se bude promitat az nekdy za mesic a jeste nema promitaci casy tak v nem jsou informace jestli bude ve 3D v jakem jazyce bude atd.. Ale ty stejny radky mam i v eventech. Jelikoz v nejakej cas az ho ten film bude mit se bude promitat treba ve 3D a v anglictine. Kdyz sem se pokousel o spolecny vypis jednim prikazem tak mi to hodilo chybu ze mam duplicitni column. To bych asi potreboval taky nejak poresit. |
||
Kajman Profil |
#2 · Zasláno: 30. 5. 2022, 13:12:29
Různé přístupy jsou porovnány např. zde
Srovnání dotazů do závislých tabulek To s těmi dvěma dotazy je většinou naopak to pravé ořechové, jen to je více programování v php. Kdybyste přeci jenom šáhnul pro jeden dotaz, tak u duplicitních sloupců můžete použít alias pro jeden z nich select e.triD as e_triD, m.triD as m_triD,.... from events e join movies m on e.movie_id = m.id ... select coalesce(e.triD, m.triD) as triD,.... |
||
Časová prodleva: 1 rok
|
0