Autor | Zpráva | ||
---|---|---|---|
freeTel Profil * |
#1 · Zasláno: 3. 2. 2020, 17:20:53
Dobrý den, snažím se docílit propojení dvou tabulek bez duplicity. Dotaz funguje jak má, ale potřebuji docílit aby druhá tabulka potlačila/nahradila tu první. Zkousel jsem group by, ale problém je, že stejný obrázek prodává víc lidí pod svím ceníkem. Takže group použít nelze. Předem děkuji za rady
$mysqli->query("SELECT ob.id,us.id_obrazku,ob.nazev,us.id_klienta,us.cenik FROM obrazky ob LEFT JOIN klient_cenik us ON ob.id = us.id_obrazku ORDER BY us.id_obrazku DESC"); |
||
Tomášeek Profil |
#2 · Zasláno: 3. 2. 2020, 17:35:45
freeTel:
Group by je to, co hledas. Akorát jsi groupoval špatný sloupec. Podle čeho poznáš duplicitu, podle toho groupuj. |
||
freeTel Profil * |
#3 · Zasláno: 3. 2. 2020, 17:45:30
To právě v mém případě není řešení. Nejde duplicitu ještě jinou možností eliminovat? Pro mě je důležité aby vložený záznam do druhého sloupce nahradil první.
|
||
Tomášeek Profil |
#4 · Zasláno: 3. 2. 2020, 17:53:54
freeTel:
Pak tedy nejde o duplicity, když jsou hodnoty různé. Databáze si to nedomysli. Udělej si podmínku na ty “duplicity” na výpisu v PHP. |
||
freeTel Profil * |
#5 · Zasláno: 3. 2. 2020, 18:11:15
Jsou to duplicity. Vypisuje mi dvakrát stejný název.
|
||
Kajman Profil |
#6 · Zasláno: 3. 2. 2020, 18:29:02
freeTel:
A které us.id_klienta a us.cenik chcete vracet, když k jednomu obrázku jich je víc? |
||
freeTel Profil * |
tabulka1: id,nazev,cena,text
tabulka1: id_klienta,id_obrazku,cena chci vracet z tabulky 2 ceník a pokud id z první tabulky neexistuje v druhé, tak se vypíšou ostatní z první. Problem nastava, kdyz si i druhy uzivatel vlozi sve ceniky do druhe tabulky |
||
Kajman Profil |
#8 · Zasláno: 3. 2. 2020, 19:09:04
Ale to co popisuje, by ten uvedený dotaz měl dělat. Vypíše všechny uživatelské ceny pro daný obrázek a když tam není žádný záznam, tak vypíše alespoň nějaké sloupce z první tabulky.
Takže ještě jednou, když máte obrázek a k němu více cen, co se má stát? |
||
freeTel Profil * |
Mam to v administraci a lidem přiřazuji ceny. Ve výpisu mám tedy ceny co jsou změněny a inputy pro vložení. Rozděluji si to před výpisem podmínkou:
if($row['id_klienta'] == intval($_GET['akce'])) Už jsem byl unaveny a proto mi nedochazela chyba v podmince. Děkuji vsem za cas a rady |
||
Kajman Profil |
#10 · Zasláno: 3. 2. 2020, 20:16:33
V tom případě Vám chybí podmínka na správného uživatele v tom left joinu.
Něco jako "SELECT ob.id, ob.nazev, us.id_klienta, Coalesce(us.cena, ob.cena) cena FROM obrazky ob LEFT JOIN klient_cenik us ON ob.id = us.id_obrazku AND us.id_klienta = ".intval($_get['akce']))." ORDER BY ob.id DESC" |
||
Časová prodleva: 5 let
|
0