[mysql] Cross query?? czy cos nie tak?
ULA - 08-09-2007 00:05
[mysql] Cross query?? czy cos nie tak?
Kochani,
Ma nastepujacy problem a mianowicie potrzebuje zanlezc roznice dwoch baz np.
(baza SN1.id) 413c674 41ndr2 41qrews 41qwert 77a1234
(baza SN2.id) 41ndr20 41qwert 413c674 41qrews 77a2234
Ponizsze qurey zwraca nastepuace wyniki
SELECT sn1.id AS ID1, sn2.id AS ID2 FROM sn1 RIGHT JOIN sn2 ON sn1.id = sn2.id WHERE sn1.id IS NULL || sn2.id IS NULL ;
(wynik) ID1 ID2 NULL 41ndr20 NULL 77a2234 ---------------
SELECT sn1.id AS ID1, sn2.id AS ID2 FROM sn1 LEFT JOIN sn2 ON sn1.id = sn2.id WHERE sn1.id IS NULL || sn2.id IS NULL
(wynik) ID1 ID2 41ndr2 NULL 77a1234 NULL ----------------
A ja bym chciala zeby bylo tak
(wynik) ID1 ID2 NULL 41ndr20 NULL 77a2234 41ndr2 NULL 77a1234 NULL -------------------
Czy to jest mozliwe zrobic takie query w jednym zapytaniu?
PS. Oczywiscie bazy sa przykładowe :)
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
psmithski@gmail.com - 08-09-2007 00:05
On 7 Wrz, 12:06, " ULA" <ulanow.SKA...@gazeta.pl> wrote: > Kochani, > > Ma nastepujacy problem a mianowicie > potrzebuje zanlezc roznice dwoch baz np. > > (baza SN1.id) > 413c674 > 41ndr2 > 41qrews > 41qwert > 77a1234 > > (baza SN2.id) > 41ndr20 > 41qwert > 413c674 > 41qrews > 77a2234 > > Ponizsze qurey zwraca nastepuace wyniki > > SELECT sn1.id AS ID1, sn2.id AS ID2 > FROM sn1 > RIGHT JOIN sn2 ON sn1.id = sn2.id > WHERE sn1.id IS NULL || sn2.id IS NULL ; > > (wynik) > ID1 ID2 > NULL 41ndr20 > NULL 77a2234 > --------------- > > SELECT sn1.id AS ID1, sn2.id AS ID2 > FROM sn1 > LEFT JOIN sn2 ON sn1.id = sn2.id > WHERE sn1.id IS NULL || sn2.id IS NULL > > (wynik) > ID1 ID2 > 41ndr2 NULL > 77a1234 NULL > ---------------- > > A ja bym chciala zeby bylo tak > > (wynik) > ID1 ID2 > NULL 41ndr20 > NULL 77a2234 > 41ndr2 NULL > 77a1234 NULL > ------------------- > > Czy to jest mozliwe zrobic takie query w jednym zapytaniu? > > PS. > Oczywiscie bazy sa przykładowe :) > > -- > Wysłano z serwisu Usenet w portalu Gazeta.pl ->http://www.gazeta.pl/usenet/
Oczywiscie mozesz zrobic UNION.
(SELECT sn1.id AS ID1, sn2.id AS ID2 FROM sn1 RIGHT JOIN sn2 ON sn1.id = sn2.id WHERE sn1.id IS NULL || sn2.id IS NULL) UNION (SELECT sn1.id AS ID1, sn2.id AS ID2 FROM sn1 LEFT JOIN sn2 ON sn1.id = sn2.id WHERE sn1.id IS NULL || sn2.id IS NULL)
To tak na szybko, z pewnoscia jest jeszcze inne rozwiazanie. Pzdr. Paweł
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 08-09-2007 00:05
ULA wrote: > Kochani,
Przez kogo? ;)
> Ma nastepujacy problem a mianowicie > potrzebuje zanlezc roznice dwoch baz np. > > A ja bym chciala zeby bylo tak > > (wynik) > ID1 ID2 > NULL 41ndr20 > NULL 77a2234 > 41ndr2 NULL > 77a1234 NULL > ------------------- > > Czy to jest mozliwe zrobic takie query w jednym zapytaniu?
Teoria mówi, że taki wynik powinien zwracać FULL OUTER JOIN, ale czy mysql go obsługuje, to nie wiem...
-- P.M.
Marek Horodyski - 08-09-2007 00:05
Użytkownik " ULA" <ulanow.SKASUJ@gazeta.pl> napisał w wiadomości news:fbr7rf$5ar$1@inews.gazeta.pl... > Kochani, > > Ma nastepujacy problem a mianowicie > potrzebuje zanlezc roznice dwoch baz np. >
[...]
> A ja bym chciala zeby bylo tak > > (wynik) > ID1 ID2 > NULL 41ndr20 > NULL 77a2234 > 41ndr2 NULL > 77a1234 NULL > ------------------- > > Czy to jest mozliwe zrobic takie query w jednym zapytaniu? > > PS. > Oczywiscie bazy sa przykładowe :)
A próbowałes :
select A minus B
Nie wiem jak w mySql, ale na Oracle to pięknie działa.
Pozdrawiam, Marek Horodyski
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|