<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FPodzapytania</id>
	<title>/Podzapytania - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FPodzapytania"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/Podzapytania&amp;action=history"/>
	<updated>2026-04-24T03:05:46Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=/Podzapytania&amp;diff=2028&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;= TI:WTBD/Podzapytania = Podzapytania, inaczej -- zagnieżdżone instrukcje SELECT, mają prawo występować w szeregu miejsc: *w instrukcji INSERT :INSERT INTO ''ta...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/Podzapytania&amp;diff=2028&amp;oldid=prev"/>
		<updated>2015-05-23T14:45:34Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;= &lt;a href=&quot;/edu/index.php/TI:WTBD&quot; title=&quot;TI:WTBD&quot;&gt;TI:WTBD&lt;/a&gt;/Podzapytania = Podzapytania, inaczej -- zagnieżdżone instrukcje SELECT, mają prawo występować w szeregu miejsc: *w instrukcji INSERT :INSERT INTO &amp;#039;&amp;#039;ta...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= [[TI:WTBD]]/Podzapytania =&lt;br /&gt;
Podzapytania, inaczej -- zagnieżdżone instrukcje SELECT, mają prawo występować w szeregu miejsc:&lt;br /&gt;
*w instrukcji INSERT&lt;br /&gt;
:INSERT INTO ''tabela'' (''kol1'', ''kol2'', ...) SELECT ... ;&lt;br /&gt;
tutaj oczywiście liczba kolumn wyniku SELECT musi się zgadzać z liczbą wstawianych pól. Listę pól można pominąć, wówczas SELECT musi dawać wynik zgodny z definicją ''tabeli''.&lt;br /&gt;
*w instrukcji SELECT, w klauzuli FROM elementem złączenia źródłowego może być kolejny SELECT (nawiasy są obowiązkowe):&lt;br /&gt;
:SELECT ''wynik'' FROM (SELECT ...)&lt;br /&gt;
wynik podzapytania jest traktowany tak samo, jak każda tabela źródłowa. Niektóre implementacje SQL wymagają, by podzapytania w klauzuli FROM miały nadane aliasy (nie były anonimowe) -- SQLite tego nie wymaga.&lt;br /&gt;
*w wyrażeniach, a więc w definicjach zbiorów wynikowych i w konstrukcji warunków, dozwolone są tzw. podzapytania skalarne, czyli o zbiorze wynikowym składającym się z 1 kolumny. Wartością takiego wyrażenia (podzapytania skalarnego) jest wówczas wartość z ''pierwszego'' wiersza wyniku -- ewent. dalsze są ignorowane, lub NULL jeśli zbiór wynikowy jest pusty (SQLite); inne systemy (MySQL) traktują jako błąd, jeśli podzapytanie skalarne użyte w takim kontekście nie zwróci dokładnie jednego wiersza -- należy więc użyć jawnej klauzuli LIMIT w podzapytaniu.&lt;br /&gt;
*w warunkach, w połączeniu z operatorem EXISTS:&lt;br /&gt;
:SELECT ... WHERE EXISTS (SELECT ...) ... ;&lt;br /&gt;
warunek EXISTS jest prawdziwy wtedy i tylko wtedy, gdy zagnieżdżony SELECT zwraca niepusty zbiór wynikowy.&lt;br /&gt;
*w warunkach, w połączeniu z operatorem IN:&lt;br /&gt;
:SELECT ... WHERE X IN (SELECT ...) ... ;&lt;br /&gt;
tutaj dozwolone jest jedynie podzapytanie skalarne, i brane są pod uwagę wszystkie wiersze jego wyniku. Warunek taki jest prawdziwy wtedy, gdy wartość wyrażenia X jest jedną z wartości zwróconych przez zagnieżdżony SELECT. ''Uwaga:'' uważać trzeba na sytuację, gdy po jednej lub drugiej stronie operatora IN pojawią się wartości NULL, wynik wtedy może być nieoczywisty.&lt;br /&gt;
:Po prawej stronie operatora IN można postawić również jawną listę wyrażeń w postaci (''wyr1'', ''wyr2'', ...).&lt;br /&gt;
Podzapytania zagnieżdżone w instrukcji SELECT mogą być ''skorelowane'' -- to znaczy odwoływać się do kolumn złączenia źródłowego zapytania zewnętrznego. Wynik podzapytania skorelowanego musi być obliczony na nowo dla każdego wiersza złączenia źródłowego -- ''uwaga:'' to może bardzo istotnie wydłużyć czas wykonania zapytania.&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>