Portál AbcLinuxu, 12. května 2025 07:28

Dotaz: podminka do MYSQL?

31.12.2007 12:05 sranda
podminka do MYSQL?
Přečteno: 295×
Odpovědět | Admin
Dobry den, byl by ochoten se to nekdo babrat s MySQL?

pokud ano, mam problem:

Nasledujici situace: v tabulce mame user_id a nick. kdyz je user prihlasen, vlozi se do user_id jeho id z tabulky uzivatelu. Jestlize neni, zobrazi se mu ve formu o input navic, kam vepise nick a ten jde necekane do sloupce nick. Co je nevyplnene, to ma NULL.

Problem nastava, kdyz bych rad vybral vsechny zaznamy a nechci se ohlizet na to, jestli je vyplnene bud to, nebo to.

Akorat mi neni jasne jak to udelat jednim dotazem.

$sql = 'SELECT zaznamy.neco, zaznamy.neco2, uzivatele.nickname, FROM zaznamy JOIN uzivatele ON zaznamy.user_id = uziv.id ' -> timhle vyberem akorat ty, kteri maji v user_id neco vyplneno. Kdyz tam nekdo ma null a vyplnen nick, tak nic.

Tohle uz zavani IFem v SQLku. Nema nekdo tuchy, jak to napsat?

Diky predem.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.12.2007 12:18 outsider
Rozbalit Rozbalit vše Re: podminka do MYSQL?
Odpovědět | | Sbalit | Link | Blokovat | Admin
UNION ALL

Neco jako ...
select ... join on zaznamy.user_id = uziv.user_id
union all
select ... join on zaznamy.nickname = uziv.nickname
31.12.2007 12:27 sranda
Rozbalit Rozbalit vše Re: podminka do MYSQL?
Diky za reakci, nicmene nevim, jestli si rozumime.

select ... join on zaznamy.nickname = uziv.nickname

Tato relace nebude fungovat. protoze zaznamy.nickname jsou typu varchar(tusim 50) a v tabulce uziv nemaji zadny zaznam, ktery by s nimi sel do relace. Zkratka je to obycejne textove pole v tabulce. Jestli je vyplneno user_id, tak je nickname hodnoty NULL a naopak. Pokud vyplneno nickname -> user_id je NULL
31.12.2007 12:47 outsider
Rozbalit Rozbalit vše Re: podminka do MYSQL?
Aha, tak proste v tom druhem select-u ma byt to, co v tom prvnim chybi. Na druhej pokus teda
... union all 
select zaznamy.neco, zaznamy.neco2, zaznamy.nickname 
  from zaznamy 
 where user_id is null and nickname is not null
Dalsi moznost je pouzit outer join, nebo si napsat funkci vracejici prislusnej nick...
31.12.2007 12:49 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: podminka do MYSQL?
To je ovšem důležitá informace.

Tak to bude asi lepší použít LEFT JOIN.
SELECT zaznamy.neco, zaznamy.neco2, uzivatele.nickname
   FROM zaznamy LEFT JOIN uzivatele ON zaznamy.user_id = uzivatele.id
31.12.2007 13:06 sranda
Rozbalit Rozbalit vše Re: podminka do MYSQL?
Zda se, ze funguje :)

Tak diky za pomoc, preju hezky Novy rok a mnoho zdaru v roce nadchazejicim vsem pritomnym.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.