Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] różnica tabel
test30
post 10.02.2008, 17:52:04
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 15.12.2007

Ostrzeżenie: (0%)
-----


witam,
w jaki sposob moge otrzymac matematyczna roznice zbiorow,
niech tabela A zawiera:
Kod
winamp
     winrar
     gadu-gadu
     mozilla

, a tabela B:
Kod
winamp
     notatnik
     gadu-gadu

chcialbym aby w wyniku polecenia podaj_roznice_tabel(A,B) zostaly zwrocone wyniki
Kod
winrar
     mozilla
, a dla polecenia podaj_roznice_tabel(B,A)
Kod
notatnik
.
nie chcialbym tego mieszac z php; mam na mysli to, ze chcialbym uniknac takiego rozwiazania ze:
pobieram dane z tabel -> tworze tablice w php,
otrzymuje roznice tabel dzieki np. poleceniu array_diff;
chcialbym tego uniknac, poniewaz bazy beda zawieraly wiele, jesli nie bardzo wiele tabel i jak juz mialem okazje to przetestowac, trwa to dluga chwilke ;/


Ten post edytował test30 24.02.2008, 13:33:28
Go to the top of the page
+Quote Post
sticker
post 10.02.2008, 18:11:08
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM a WHERE a.id NOT IN (SELECT b.id FROM b WHERE ....)


Ten post edytował sticker 10.02.2008, 18:11:26


--------------------
Go to the top of the page
+Quote Post
test30
post 10.02.2008, 21:20:27
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 15.12.2007

Ostrzeżenie: (0%)
-----


mam baze danych:
  1. CREATE TABLE `a` (
  2. `id` varchar(40) NOT NULL DEFAULT ''
  3. ) TYPE=MyISAM;
  4.  
  5. INSERT INTO `a` VALUES ('wartosc1');
  6. INSERT INTO `a` VALUES ('inna');
  7. INSERT INTO `a` VALUES ('zgodna');
  8.  
  9.  
  10. CREATE TABLE `b` (
  11. `id` varchar(40) NOT NULL DEFAULT ''
  12. ) TYPE=MyISAM;
  13.  
  14. INSERT INTO `b` VALUES ('zgodna');
  15. INSERT INTO `b` VALUES ('wardwa');

i uzywam polecenia
  1. SELECT * FROM a WHERE a.id NOT IN (SELECT a.id FROM B) ;

i wystepuje blad;

Ten post edytował test30 10.02.2008, 21:20:56
Go to the top of the page
+Quote Post
kitol
post 10.02.2008, 21:23:20
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

Ostrzeżenie: (0%)
-----


powinno być:

  1. SELECT * FROM a WHERE a.id NOT IN (SELECT B.id FROM B );


Ten post edytował kitol 10.02.2008, 21:25:50
Go to the top of the page
+Quote Post
test30
post 10.02.2008, 21:28:53
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 15.12.2007

Ostrzeżenie: (0%)
-----


probowalem kombinacje a i b,

Kod
1064: Something is wrong in your syntax obok 'select b.id from B) ' w linii 1

moglby mi ktos powiedziec co oznacza to .id?
Go to the top of the page
+Quote Post
heaven
post 10.02.2008, 22:30:54
Post #6





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


Dziwne bo ja utworzylem tabele takie jak podales i polecenie

  1. SELECT * FROM a WHERE a.id NOT IN (SELECT b.id FROM b );


podaje poprawny wynik i nie ma mowy o bledzie

w druga strone bedzie tak

  1. SELECT * FROM b WHERE b.id NOT IN (SELECT a.id FROM a);


Ps. id to nazwa jedynej kolumny w twoich tabelach

Ten post edytował heaven 10.02.2008, 22:32:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.09.2024 - 12:06