Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: except, union nie dziala & polaczenie do bazy mysql.exe
Forum PHP.pl > Forum > Bazy danych > MySQL
test30
witam,
uzywam servera krasnal 2.7 http://www.pablo.wzieu.pl/krasnal/KRASNAL-Serv-2.7.exe,
mam pytania zwiazane z poleceniami mysql,
1. moglby mi ktos powiedziec jak przy pomocy mysql.exe polaczyc sie z baza danych?
2. moze ktos mi powiedziec co jest zle w nastepnujacym poleceniu?
  1. SELECT * FROM a except SELECT * FROM b;

zauwazylem rowniez ze polecenia z skladnia union tez nie dzialaja, moze mi ktos pomoc?
to polecenie nie dziala mi na zadnej bazie, ale podam przyklad takiej, na ktorej sam sprawdzam:
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.6.0-pl2
  3. --
  4. -- Host: localhost
  5. -- Czas wygenerowania: 09 Lut 2008, 01:01
  6. -- Wersja serwera: 3.23.58
  7. -- Wersja PHP: 4.3.9
  8. --
  9. -- Baza danych: `baza`
  10. --
  11.  
  12. -- --------------------------------------------------------
  13.  
  14. --
  15. -- Struktura tabeli dla `a`
  16. --
  17.  
  18. CREATE TABLE `a` (
  19. `a` varchar(40) NOT NULL DEFAULT ''
  20. ) TYPE=MyISAM;
  21.  
  22. --
  23. -- Zrzut danych tabeli `a`
  24. --
  25.  
  26. INSERT INTO `a` VALUES ('wartosc1');
  27. INSERT INTO `a` VALUES ('inna');
  28. INSERT INTO `a` VALUES ('zgodna');
  29.  
  30. -- --------------------------------------------------------
  31.  
  32. --
  33. -- Struktura tabeli dla `b`
  34. --
  35.  
  36. CREATE TABLE `b` (
  37. `a` varchar(40) NOT NULL DEFAULT ''
  38. ) TYPE=MyISAM;
  39.  
  40. --
  41. -- Zrzut danych tabeli `b`
  42. --
  43.  
  44. INSERT INTO `b` VALUES ('zgodna');
  45. INSERT INTO `b` VALUES ('wardwa');
Indeo
UNION w mysql działa jak najbardziej.
AD1 ) aby połączyć się poleceniem mysql z bazą danych musisz mieć zainstalowanego mysql i uprawnienia do połączenia z danym serwerem mysql. Np. nie wszystkie serwery mysql w necie pozwalają na zdalne łączenie z bazą danych, a jedynie na połączenie lokalne (ze skryptów znajdujących się na serwerze). Aby się o tym przekonać wchodzimy w wierszu poleceń (menu start/uruchom/cmd) do katalogu bin w instalacji mysql. Tam wykonujemy polecenie:

mysql -h nazwaserwera -u user -p

#padnie prośba o podanie hasła
#jeżeli mysql działa na innym porcie niż 3306 wtedy dodajemy flagę z portem (tutaj 3305):
mysql -h nazwaserwera -P 3305 -u user -p

Potem zostaniemy albo zalogowani do serwera albo logowanie zostanie odrzucone. Po zalogowaniu musimy wybrać bazę danych:

use nazwabazy;

#listę dostępnych baz możemy wyświetlić poleceniem:

show databases;

AD2)
Prawdopodobnie union Ci nie działa bo próbujesz złączyć tabele o innym kształcie. Pierwsza tabela ma 3 pola, druga 2. Musisz wybrać tylko 2 pola z pierwszej,albo w zapytaniu do drugiej dodać np. pole o wartości null, wtedy UNIOn zadziała. Można łączyć UNION tylko wyrażenia zwracające taką samą ilość pól.
test30
dzieki, ale
Cytat(Indeo @ 9.02.2008, 10:13:28 ) *
AD2)
Prawdopodobnie union Ci nie działa bo próbujesz złączyć tabele o innym kształcie. Pierwsza tabela ma 3 pola, druga 2. Musisz wybrać tylko 2 pola z pierwszej,albo w zapytaniu do drugiej dodać np. pole o wartości null, wtedy UNIOn zadziała. Można łączyć UNION tylko wyrażenia zwracające taką samą ilość pól.


Kod
CREATE TABLE `a` (
`a` varchar(40) NOT NULL default ''
) TYPE=MyISAM;

CREATE TABLE `b` (
`a` varchar(40) NOT NULL default ''
) TYPE=MyISAM;

to sa dokladnie takie same tabele ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.