[mysql] union + count bez powtorzen
raf - 26-04-2006 01:22
[mysql] union + count bez powtorzen
witam chce polaczyc 2 tabele tak aby druga zastepowala wyniki pierwszej (jezeli jest duplikat)
select 0 as x, id as k from k union select count(id) AS x, k from prod GROUP BY k
w 1 tabeli wartosc x ma miec 0 natomiast w 2 x jest zliczany problem w tym ze mysql widzi 'x' jako dwa rozne typy
np zwoci x k ------------ 0 k --> z pierwszej tabeli 0 k --> z drugiej tabeli a powinno zwocic tylko 1 wiersz bo jest union
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 26-04-2006 01:22
raf napisał(a): > witam chce polaczyc 2 tabele tak aby druga zastepowala wyniki pierwszej > (jezeli jest duplikat) > > select 0 as x, id as k from k > union > select count(id) AS x, k from prod GROUP BY k > > w 1 tabeli wartosc x ma miec 0 > natomiast w 2 x jest zliczany > problem w tym ze mysql widzi 'x' jako dwa rozne typy > > np zwoci > x k > ------------ > 0 k --> z pierwszej tabeli > 0 k --> z drugiej tabeli > a powinno zwocic tylko 1 wiersz bo jest union
Jakbyś tak najpierw napisał co znajduje sie w tabeli k, a potem co uzyskałeś i dopiro pod tym wynik, to by było jaśniejsze.
Ale tak na pierwszy rzut oka, to count(id) zwróci 0 tylko, jak id jest null (oczywiście, gdy uzywamy group by), a zazwyczaj id robi sie not null.... stąd moje domniemanie, że cos pokręciłeś. :)
-- P.M.
Przemyslaw Popielarski - 27-04-2006 00:16
raf <rafalpawelczyk@tlen.pl> wrote: > select 0 as x, id as k from k > union > select count(id) AS x, k from prod GROUP BY k > > w 1 tabeli wartosc x ma miec 0 > natomiast w 2 x jest zliczany > problem w tym ze mysql widzi 'x' jako dwa rozne typy
Bron Boze nie podawaj wersji oprogramowania, zebysmy nie mogli zweryfikowac Twoich zapytan u siebie zbyt latwo. Pobawmy sie w zgaduj-zgadula, kazdy ma przeciez za duzo czasu. Ja tez. Wiec u mnie na 4.1.16 i 5.0.20a nie moge powtorzyc Twoich rezultatow. Tak, wersja w tym przypadku wg dokumentacji *ma* znaczenie: http://dev.mysql.com/doc/refman/5.0/en/union.html
"If the data types of corresponding SELECT columns do not match, the types and lengths of the columns in the UNION result take into account the values retrieved by all of the SELECT statements."
"(In some earlier versions of MySQL, only the type and length from the first SELECT would have been used and the second row would have been truncated to a length of 1.)"
-- ../ premax ../ premax@hot,pl ../ koniec i bomba, a kto czytal ten traba. w.g.
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.plshanti.opx.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 |
|