[+] PHP, MYSQL -
[+] PHP, MYSQL - łączenie wyników zapytań
Witam. Mam taki problem. Mianowicie chciałbym połączyć i posortować wyniki zapytań z kilku baz i tabel. Czy jest to możliwe? Jeśli tak to jak to zrobić?
Można też połączyć ze sobą tabele wpisując po ,,from'' nazwy tabel, z których chcemy coś wyciągnąć. Kolumny poszczególnych tabel można połączyć ze sobą ich nazwami np.:
Kod: Zaznacz cały
where kolumna1=kolumna2
Jasne ze sie da:
Jak chcesz sortowac to calosc w nawias i ORDER BY
WAZNE: pola moga miec dowolne nazwy, ale musi byc ich wybranych tyle samo z kazdej z tabel, jak gdzies czegos brakuje to mozna wybrac nulla (tak jak jest to w baza3). Typy chyba tez powinny byc zgodne, nie pamietam co sie dizeje w innym przypadku.
PS: http://dev.mysql.com/doc/refman/5.1/en/union.html
Kod: Zaznacz cały
SELECT foo, bar, baz FROM baza1.tabela WHERE ...
UNION
SELECT foo, bar, baz FROM baza2.tabela WHERE ...
UNION
SELECT foo, bar, NULL FROM baza3.tabela WHERE ...
WAZNE: pola moga miec dowolne nazwy, ale musi byc ich wybranych tyle samo z kazdej z tabel, jak gdzies czegos brakuje to mozna wybrac nulla (tak jak jest to w baza3). Typy chyba tez powinny byc zgodne, nie pamietam co sie dizeje w innym przypadku.
PS: http://dev.mysql.com/doc/refman/5.1/en/union.html
Nigdy nie rób tak. Pomyśl sobie że masz np. 1 000 rekordów w każdej tabeli - wynikiem tego działania jest 1 000 000 wierszy i w każdym musi być sprawdzony warunek!WilK pisze:SELECT tabela1.*, tabela2.* FROM tabela1, tabela2
i np.
WHERE tabela1.ID=tabela2.ID
Jak już coś takiego robić to tylko przez:
Kod: Zaznacz cały
FROM tabela1 JOIN tabela2 USING(ID)
A w ogóle to to nie ma sensu, bo chcesz mieć dane z dwóch takich samych tabel o różnych danych - zapewne warunek WHERE lub JOIN nigdy nie zostanie spełniony. Już pomijam że po to wymyślili UNION żeby takich dziwactw nie wyprawiać.