Právě je neděle 05. září 2010, 07:39

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
 Předmět příspěvku: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: pátek 12. březen 2010, 20:02 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
Potrebuji jednim slozitejsim sql prikazem udelat nasledujici:
Mam vyselektovany treba dva zaznamy (dostal jsem se k nim aplikaci nekolika dalsich selektuu) a ted tyto zaznamy potrebuji doplnit o dalsi sloupce z jine tabulky podle nejake spolecne hodnoty. Jde o to, ze druhou tabulku mam v DB, muzu k ni tedy lehce pristoupit pres jmeno. Ale tu prvni (2 zaznamy vznikle nekolika selekty) mam tak nejak "v lufte", takze na ni nemuzu aplikovat INNER JOIN.

Nebo proste nevim, jak na to:o/
Vim, ze to je naprosta trivialnost, ale nemuzu se pres to dostat. Diky za vsechny rady.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: pátek 12. březen 2010, 20:26 
Offline
Site Admin
Site Admin
Uživatelský avatar

Registrován: sobota 02. únor 2008, 13:55
Příspěvky: 1578
Bydliště: Olomouc
a ty dve tabulky nemas nejak pojmenovany? Ze bys pak pouzil to jmeno v INNER JOIN

_________________
Černá díra je pokus Boha dělit nulou.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: sobota 13. březen 2010, 10:03 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 427
Muzes napriklad udelat normalni join s tim, ze z 1. tabulky vyberes ty 2 zaznamy pres ID:
SELECT xxx FROM yyy as T1 INNER JOIN ... WHERE T1.id in (123,456);

Muzes take udelat vlastne mnozinu dat:
(SELECT 123 as ID UNION ALL SELECT 456 as ID) as T1 INNER JOIN ...

Syntaxe se trochu lisi podle pouzite DB. Melo by to byt srozumitelne.
Dalsi moznost je manipulace s datasetem apod.

Pokud pujde jen o par zaznamu, udelal bych to primo v query.

edit: oprava preklepu + lepsi citelnost.

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Naposledy upravil Phobos dne neděle 14. březen 2010, 01:11, celkově upraveno 1

Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: sobota 13. březen 2010, 13:00 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
zewl: Chtel jsem si ty selektovane zaznamy pojmenovat pres alias, ale to mi nevzal syntakticky.
Phobos: Ve tvem prvnim prikladu ten strednik je schvalne? Vim, ze se pouziva pro skladani vice dotazuu, ale v .NETu (databaze MS SQL 2008) mi to vzdycky vyhodnoti jen posledni z takto za sebou poskladanych prikazuu.
Necham to ted ulezet a v pondeli to vyzkousim. Diky za tipy. Vetsinou se mi nepodari pojmenovat mnozinu vyselektovanych zaznamu, na kterou bych se pak odkazoval jako na tabulku ulozenou v DB. Pokud by se mi toto podarilo, tak bych se zbavil vetsiny problemu, ktere s sql mam.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: neděle 14. březen 2010, 01:14 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 427
Erwoll píše:
Phobos: Ve tvem prvnim prikladu ten strednik je schvalne? Vim, ze se pouziva pro skladani vice dotazuu, ale v .NETu (databaze MS SQL 2008) mi to vzdycky vyhodnoti jen posledni z takto za sebou poskladanych prikazuu.

Ooops. Sorac. Ja napsal ten select puvodne bez joinu a ten join jsem jen tak flakl na konec :lol:. Opraveno. Strednik mel byt na konci jako ukonceni query.

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: pondělí 15. březen 2010, 12:11 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
Protoze se mi stale nedari sestavit ten dotaz, tak se zeptam na jinou vec. Mam dve tabulky, nad kterymi udelam select, ktery si chci pojmenovat. Jde to? Jaka je spravna syntaxe?
Kdyz udelam:
Kód:
select TABULKA1.SLOUPEC1, TABULKA1.SLOUPEC2, TABULKA2.SLOUPEC1, TABULKA2.SLOUPEC3 from TABULKA1, TABULKA2 AS SEL1
tak se pojmenuje jen ta TABULKA2 a potom to samozrejme rve, protoze chce vsude v dotaze pouzivat SEL1 misto TABULKA2.
Takze dotaz je, jak tento select pojmenovat, abych se na jeho sloupce mohl pozdeji odkazovat, popripade abych mohl vysledek tohoto selectu joinovat s jinou tabulkou, nebo vysledkem jineho slozitejsiho selektu.
Diky za trpelivost s mou neschopnostii.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: pondělí 15. březen 2010, 12:35 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
Tak uz jsem ten prikaz slozil a bez pouziti join, jen s nejakymi vnorenymi selecty a WHERE podminkami.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: středa 17. březen 2010, 11:11 
Offline
Pokročilý
Pokročilý

Registrován: čtvrtek 09. červenec 2009, 15:41
Příspěvky: 427
Erwoll píše:
...Takze dotaz je, jak tento select pojmenovat, abych se na jeho sloupce mohl pozdeji odkazovat, popripade abych mohl vysledek tohoto selectu joinovat s jinou tabulkou, nebo vysledkem jineho slozitejsiho selektu....

Pojmenujes pouze vnorenym selektem, ale otazka je proc? Pokud mas tabulky intuitivne pojmenovany, neni prece problem spojit to s jinou mnozinou dat.
Jedine, ceho takovym vnorenym selektem dosahnes, je naruseni optimizace query databazovym enginem (+ mozna citelnejsi query)!
Erwoll píše:
Tak uz jsem ten prikaz slozil a bez pouziti join, jen s nejakymi vnorenymi selecty a WHERE podminkami.

Vnorene selecty nejsou vetsinou efektivni (cesta do vykonovych pekel pri slozitejsich dotazech).

_________________
How many Microsoft developers does it take to change a light bulb? None, they just change the standard to darkness.
Obrázek
Having a Cup<T> somewhere...


Nahoru
 Profil E-mail  
 
 Předmět příspěvku: Re: SQL - INNER JOIN na vysledek selektu
OdeslatNapsal: středa 17. březen 2010, 11:22 
Offline
Pokročilý
Pokročilý
Uživatelský avatar

Registrován: sobota 09. únor 2008, 20:53
Příspěvky: 482
Bydliště: Olomouc
Phobos: Presne jak pises, byla to nejaka moje utkvela predstava, ze si musim pojmenovat ten select, abych s tim pak mohl pracovat. Ale je to blbost, kdyz vim, jake tabulky se ucastnily toho selectu, tak pak pristupuju pres nazvy tech tabulek.
Nevim, proc jsem nad tim tak divne premyslel.

Jak bude cas, tak tu proceduru jeste opravim, abych nemusel pouzivat vnorene selecty. Diky za rady.

_________________
http://www.dotnetcesky.blogspot.com - C#, kde knihy nestačí.


Nahoru
 Profil E-mail  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přeskočit na:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Český překlad – phpBB.cz

Google Pagerank - www.dotnetforum.czGoogle Pagerank S-Rank - www.dotnetforum.czS-Rank JyxoRank - www.dotnetforum.czJyxoRank


Valid XHTML 1.0 Transitional