Nechápu Váš dotaz. Je snad logické, že nebudu cpát uživatele a články do jedné tabulky. Takže jestli to zamýšlíte takto, tak na to radši rychle zapomeňte.
Příspěvky odeslané z IP adresy 90.179.140.–
Nevím k čemu LEFT JOIN. Když už , tak vnitřní spojení, pokud jsem to dobře pochopil, tak tazatel nechce vybrat nesouvisející řádky ani nechce vybrat částečnou shodu řádků z tabulek krajiny a info, ale jen takové, kde se krajiny.skratka_krajiny=info.krajina.
Pomocí vnitřního spojení, tedy inner joinu by to pak vypadalo nějak takhle:
SELECT [pažadované atributy] FROM krajiny,info WHERE krajiny.kod=[vstup] AND krajiny.skratka_krajiny=info.krajiny;
nebo ještě trochu jiná syntaxe:
SELECT [pažadované atributy] FROM krajiny INNER JOIN info ON krajiny.kod=[vstup] AND krajiny.skratka_krajiny=info.krajiny;
Tak jsem prošel php kód a žádné header() funkce tam nejsou. Pouze spousta required(). Mohli by to také způsobovat?
Dobře děkuji za radu. Podívám se na to a kdyžtak dám ještě vědět.
Dobrý den.
Mám web v php, má administraci, která je umístěná ve složce www.example.com/admin, no a vždycky když toto napíšu do adresního řádku, tak se mi vrátí error "Smyčka při přesměrování". Nevíte jak to opravit? Někde jsem četl, že by to vyřešil soubor .htaccess - ovšem nevím jak ho použít. Nebo je chyba někde v php kódu?
Za případně odpovědi děkuji.
No možná kdyby si sem napsal, co vlastně chceš...
Včera jsem tu už nebyl, tak ještě takto dodatečně dodávám řešení přes JOIN. Pro velké tabulky by byl vhodnější.
select a.Name, a.Email from a inner join (select aa.Email from a aa group by aa.Email having count(aa.Email) > 1) t on a.Email = t.Email;
To dannyk : On chce jen takové uživatele, jejichž email se vyskytuje v databáze vícekrát (tedy vybrat uživatele , kteří jsou registrovaní na stejný email). Takže Vámi navrhovaný select fungovat nebude.
EDIT: Asi jsem to měl uvést na Váš konkrétní příklad. Tak tedy ještě jednou:
select UserName, Email from a where Email in (select Email from a group by Email having count(Email) > 1);
To co chcete by pak tedy vypadalo třeba takto:
select Name, UserName from a where UserName in (select UserName from a group by UserName having count(UserName) > 1);
Ano je skoro to samé, nicméně správné. Zkuste si Vámi navrhovaný select spustit v Oracle, Accessu a jiných DB, skončí to chybovým hlášením. A proč? Protože Pokud udělám group by nad sloupcem jmeno, tak se "sgrupují" stejné hodnoty v tento sloupci (pochopitelně) a jak si má dle Vás DB vybrat, co vypíše do sloupce username? Náhodnou hodnotu? To je přeci nesmysl.
Tak jednak výrazům jako "obě tři", "obě čtyři" není moc rozumnět. Si sám proti sobě, takhle to bude každému trvat déle než tvůj dotaz pochopí a tedy než ty dostaneš odpověď.
Dále ten select co si uvedl je v samé své podstatě nesmyslný. Kdyby si pracoval v nějaké databázi, tak by si zjistil proč (ani by si ho nespustil).
A co třeba zkusit tohle: select username, jmeno, count(jmeno) from tb group by username, jmeno having count(jmeno) > 1;
Pak je tu samozřejmě "problém" s předností operátorů. Já bych to udělal tak, že bych měl dvě pole. V jednom čísla a v druhém operátory. Procházel bych pole s operátory a nejdříve násobil, dělil a pak až sčítal a odečítal, předvedu to na tom tvém příkladu:
pole čísel:
5 6 9
pole operátorů:
+ *
Procházím pole operátorů, narazím na *, čili vynásobím 6 * 9 a výsledek uložím na místo 6.
Znova procházím pole operátorů a tentokrát sčítám 5 + 54.
Konec.
Dobrý den. Potřeboval bych v assembleru udělat následující: Pokud je proměnná < 10, tak k ní přičíst 48, pokud je větší nebo rovna 10, tak k ní přičíst 55. Různě na internetu jsem četl o podmíněných skocích a různě zkoušel, ovšem pokud napíšu tento kód, tak mi to stejně nefunguje:
asm(".intel_syntax noprefix \n"
"mov ax, _x \n"
"cmp _x, 10 \n"
"jge velka_cisla \n"
"jl mala_cisla \n"
"velka_cisla: add ax, 55 \n"
"mala_cisla: add ax, 48 \n"
"mov _y, ax \n"
".att_syntax \n");
Jednoduše proto, že je to domácí úkol a je samozřejmě jednodušší si to nechat vypracovat, než se snažit sám.