Autor Zpráva
AM_
Profil
Zdravím,
je možné v MySQL nějak udělat něco jako left join, ale aby v případě, že k danému řádku z tabulky A existuje dle podmínky řádek z tabulky B, aby se připojil jen jeden nalezený?
Např. budu mít tabulky:
uživatelé:
id - jméno

1 Pepa
2 Honza
3 Karel
koupené zboží:
název - koupil
rohlík - 1
chleba - 1
houska- 2

A já bych chtěl dotaz, jehož výsledkem bude
uživ. - koupil
pepa - rohlík
honza-houska
karel-null

Děkuji za pomoc.
ninja
Profil
A nějaké pravidlo který záznam chcete upřednostnit máte? Stačí přidat:
GROUP BY uzivatele.id
AM_
Profil
ninja
Aha, díky :) pravidlo žádné není, jen mi šlo o to eliminovat možné vícenásobné záznamy, které by se sice v mém programu neměly vyskytnout, ale kdyby náhodou nějakou chybou, udělaly by v kódu dost zmatek.
TomášK
Profil
AM_
Nestálo by za to nastavit podmínky na databázi tak, aby stejné řádky nemohly vzniknout? Tohle řešení mi přijde na stejném principu jako potlačení chybové hlášky. Pokud bude v databázi chyba, zdá se mi lepší zjistit to co nejdřív - byť se třeba rozbije nějaký výpis - než to potlačovat a nevědět o tom.
AM_
Profil
No on je problém o něco složitější, na úrovni databáze pokud vím neexistuje podmínka vymezující tuto duplicitu (jsou to časové údaje vymezené počátečním a koncovým datem, které by se pro daného uživatele neměly překrývat). Kdyby se to tam ale náhodou povedlo propašovat, jediné, čemu to ublíží, bude zmatený výpis :)
Toto téma je uzamčeno. Odpověď nelze zaslat.