Autor Zpráva
freeTel
Profil *
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
freeTel:
Group by je to, co hledas. Akorát jsi groupoval špatný sloupec. Podle čeho poznáš duplicitu, podle toho groupuj.
freeTel
Profil *
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
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 *
Jsou to duplicity. Vypisuje mi dvakrát stejný název.
Kajman
Profil
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
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
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"

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0