MySQL - specialny select

Programovacie jazyky, rady, poradňa...
Boccaccio
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1097
Registrovaný: 01 mar 2014, 14:00
Bydlisko: Bratislava

MySQL - specialny select

Príspevok od používateľa Boccaccio »

Ahojte,
mam select, ktory vypise id a meno, napr:

Kód: Vybrať všetko

id | meno
-----------
 1 | Anna
 2 | Boris
 3 | Cyril
 4 | Dana
 5 | Emil
nasledne mam druhy select, ktory vypise niektore ID, napr:

Kód: Vybrať všetko

id
---
 3 
 4 
Ako mozem docielit, aby tieto selecty spojili, no tieto druhe ID by sa oznacili napr. takto:

Kód: Vybrať všetko

id | meno | vyskyt
-----------
 1 | Anna | 0
 2 | Boris | 0
 3 | Cyril | 1
 4 | Dana | 1
 5 | Emil | 0
Vopred dakujem!!!
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: MySQL - specialny select

Príspevok od používateľa Michaelo »

Nieco taketo?

Kód: Vybrať všetko

SELECT 
	Users.id,
	Users.meno,
	COUNT(DISTINCT Data.id) AS vyskyt,
FROM 
	(
		SELECT 
			id
		FROM
			TabulkaVyskytov
		UNION
		SELECT 0 as id
	) AS Data
LEFT OUTER JOIN 
	TabulkeUserov Users ON Users.id = Data.id
GROUP BY 
	Data.id
ORDER BY
	Data.id

Mam podobny select kde vyberam replaye a priradzujem ich ku kategoriam a podla toho robim statistiky pre graf a cez Union tam pridavam este "nekategorizovane".

Bolo by lepsie keby si dokazal lepsie povedat co mas v tych tabulkach ale... No toto by mohlo fungovat, ale mozno bude potrebovat par uprav.
Boccaccio
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1097
Registrovaný: 01 mar 2014, 14:00
Bydlisko: Bratislava

Re: MySQL - specialny select

Príspevok od používateľa Boccaccio »

Dakujem.
Strucne - mam mnozinu ID a podmnozinu ID.
Chcem do vypisu mat vsetky ID mnoziny a ak sa dane ID vyskytuje aj v podmnozine, tak sa do stlpca "vyskyt" vypise 1 (alebo "ano") a pre ostatne ID sa nevypise nic (alebo "nie")
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: MySQL - specialny select

Príspevok od používateľa Michaelo »

Tak potom potrebujes pouzit CASE (ako case alebo if, elseif v php).
Bud to budes robit joinom alebo sub selectom. Sub select je jednoduchsi na napisanie a pochopenie, ale join by ti menej vytazoval DB.

'0' mozes nahradit 'Nie' a '1' nahradit 'Ano'. To uz je na tebe.

Kód: Vybrať všetko

SELECT 
   Users.*, 
   CASE Data.id 
      WHEN NULL THEN '0'
      ELSE '1' 
   END as vyskyt
FROM 
   Tabulka1 Users
LEFT OUTER JOIN
   Tabulka2 Data 
ON 
   Data.id = Users.id
Boccaccio
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1097
Registrovaný: 01 mar 2014, 14:00
Bydlisko: Bratislava

Re: MySQL - specialny select

Príspevok od používateľa Boccaccio »

Zajtra to vyskusam, zatial mega vdaka za ochotu!!!
Napísať odpoveď