Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Łączenie dwóch tabelek w jedną nie działa
blendermen
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2013

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


Witam.
Mam problem z mysql`elem.
Mam dwie identyczne tabele i chcę za pomocą jednego zapytania sql wyświetlić łączony wynik z dwóch tabel. Udało mi się to zrobić ale tylko na testowych tablicach..a na właściwych nie działa i właśnie nie wiem dlaczego. No więc tak:
To są moje testowe tablice:

  1. table1: table2:
  2.  
  3. +-------------------------+ +--------------------------------+
  4. | Name | Name
  5. --------------------------- +---------------------------------
  6. | A | | C |
  7. | B | | D |
  8. | C | | E |

I za pomocą polecenia sql

  1. mysql> SELECT name FROM (SELECT name FROM table1
  2. -> UNION SELECT name FROM table2) A;

Udało mi się poprawnie połączyć te dwie tablice jako jedna:
  1. +------+
  2. | name |
  3. +------+
  4. | A |
  5. | B |
  6. | C |
  7. | D |
  8. | E |
  9. +------+
  10. 5 rows IN SET (0.00 sec)


Ale jak zastosuje ten sam kod sql na moich właściwych już tablicach - zdjecie i zdjecie_poczekalnia, które mają taką samą strukturę nie działa.
Robie na zaliczenie klona demotywatorow. Mam dwie tablice ze zdjeciami (zdjecie i zdjecia_poczekalnia) pierwsza tabela zawiera informacje o zdjeciach
na stronie głownej a druga tabela zawiera informacje o zdjeciach w poczekalni.
Chcę połaczyć obie tabelę żeby każdy użytkownik mogł zobaczyć wszystkie zdjecią ktore wrzucił na strone -i te, które dostały się na stronę główna i te w poczekalni

Poczekalnia:
  1. +----+-----------------------------+--------+-------+-----------------+--------------------------+
  2. | id | zdjecie | userid | ocena | opis | DATA |
  3. +----+-----------------------------+--------+-------+-----------------+--------------------------+
  4. | 74 | obrazki/goldenbridge.jpg | 1 | 0 | Golden Bridge | 2013-11-20 15:26:57 |
  5. +----+--------------------------+--------+-------+---------------+-------------------------------+
  6. | 75 | obrazki/gladiator.jpg | 1 | 0 | Gladiator | 2013-11-20 15:29:57 |
  7. +----+-----------------------------+--------+-------+------------------+--------------------------+


Strona główna:
  1. +----+-------------------------------+--------+-------+-----------------+-------------------------------+
  2. | id | zdjecie | userid | ocena | opis | DATA |
  3. +----+-------------------------------+--------+-------+-----------------+--------------------------------+
  4. | 11 | obrazki/kaczor_donald.jpg | 1 | 0 | kaczka | 2013-10-20 15:26:57 |
  5. +----+-------------------------------+--------+-------+------------------+-------------------------------+
  6. | 12 | obrazki/ford.jpg | 1 | 0 | samochod | 2013-09-20 15:29:57 |
  7. +----+--------------------------------+--------+-------+-----------------+-------------------------------+
  8. | 14 | obrazki/rower.jpg | 0 | 0 | rower | 2013-08-20 15:29:57 |
  9. +----+--------------------------------+--------+-------+-----------------+-------------------------------+



A chcę uzyskać taki wynik dla usera=1

  1. +---+-------------------------------+--------+-------+------------------+---------------------------------+
  2. | id | zdjecie | userid | ocena | opis | DATA |
  3. +----+------------------------------+--------+-------+------------------+--------------------------------+
  4. | 74 | obrazki/goldenbridge.jpg | 1 | 0 | Golden Bridge | 2013-11-20 15:26:57 |
  5. +----+------------------------------+--------+-------+-------------------+-------------------------------+
  6. | 75 | obrazki/gladiator.jpg | 1 | 0 | Gladiator | 2013-11-20 15:29:57 |
  7. +----+------------------------------+--------+-------+-------------------+-------------------------------+
  8. | 11 | obrazki/kaczor_donald.jpg | 1 | 0 | kaczka | 2013-10-20 15:26:57 |
  9. +----+-------------------------------+--------+-------+------------------+-------------------------------+
  10. | 12 | obrazki/ford.jpg | 1 | 0 | samochod | 2013-09-20 15:29:57 |
  11. +----+--------------------------------+--------+-------+-----------------+---------------------------------+


Tylko, że jak wpisze
mysql> SELECT zdjecie FROM (SELECT zdjecie FROM zdjecia UNION SELECT zdjecie FROM zdjecia_pocz) A;
to otrzymuje błąd:
ERROR 1271 (HY000): Illegal mix of collations for operation 'UNION'
Przeszukałem całe google i nie mogę znaleźć informacji na ten temat.
Przepraszam za te rozjechane - nieczytelne tabelki. W moim edytorze postu są równo i nie wiem jak je wyrównać
Pozdrawiam.

Ten post edytował blendermen 20.11.2013, 19:15:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blendermen
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.11.2013

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


Robię dwie tabele ponieważ chcę żeby zdjęcia, które czekają w poczekalni po zatwierdzeniu były przenoszone do pierwszej tabeli jako nowe wpisy i wyświetlane na pierwszej stronie ponieważ wczytuje zdjęcia od dołu do góry z tabeli. Jeżeli wrzuciłbym wszystko do jednej i po na przykład roku czasu odhaczył zmienną poczekalnia z 1 na 0 zdjęcie byłoby gdzieś tam daleko na n-tej stronie. Tak to rozwiązałem ale myślę, że dałoby się to zrobić tak jak mówisz ale musiałbym zmienić algorytm wczytywania zdjęć. (IMG:style_emoticons/default/wink.gif)

Robiłem takie same kodowanie na obu tablicach. To złe kodowanie może taki błąd pokazywać? jak to naprawić?
Dokładnie mam takie tabelki:
  1. mysql> SHOW FULL COLUMNS FROM zdjecia;
  2. +---------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  3. | FIELD | Type | Collation | NULL | KEY | DEFAULT | Extra | Privileges | Comment |
  4. +---------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  5. | id | int(10) UNSIGNED | NULL | NO | PRI | NULL | AUTO_INCREMENT | SELECT,INSERT,UPDATE,REFERENCES | |
  6. | zdjecie | char(70) | utf8_general_ci | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  7. | userid | int(50) | NULL | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  8. | ocena | int(50) | NULL | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  9. | opis | varchar(255) | utf8_general_ci | YES | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  10. | DATA | datetime | NULL | YES | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  11. +---------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  12. 6 rows IN SET (0.00 sec)
  13.  
  14. mysql> SHOW FULL COLUMNS FROM zdjecia_pocz;
  15. +---------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  16. | FIELD | Type | Collation | NULL | KEY | DEFAULT | Extra | Privileges | Comment |
  17. +---------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  18. | id | int(50) | NULL | NO | PRI | NULL | AUTO_INCREMENT | SELECT,INSERT,UPDATE,REFERENCES | |
  19. | zdjecie | char(70) | utf8_unicode_ci | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  20. | userid | int(50) | NULL | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  21. | ocena | int(50) | NULL | NO | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  22. | opis | varchar(255) | utf8_unicode_ci | YES | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  23. | DATA | datetime | NULL | YES | | NULL | | SELECT,INSERT,UPDATE,REFERENCES | |
  24. +---------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
  25. 6 rows IN SET (0.00 sec)
  26.  

i faktycznie są inne. Poprawie i dam znać czy działa (IMG:style_emoticons/default/wink.gif)

Ten post edytował blendermen 20.11.2013, 19:55:13
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 15.10.2025 - 12:01