Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]Union i klauzura WHERE
Larges
post
Post #1





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


Witam, prosiłbym o odpowiedź na teoretyczne pytanie.
Przyjdzie mi zmierzyć się z łączeniem dwóch tabel za pomocą UNION. Obie mają identyczne budowy w 100% łącznie z postawionymi indeksami ale służą ciut do czego innego - jedna jest ogromna druga malutka - ta druga jest częściej wykorzystywana bo działa znacznie szybciej.

I moje pytanie brzmi jak połączyć tabelę i zastosować klauzurę WHERE

np.

tabela_1
id, tytul

tabela_2
id, tytl

Kod
mysql_query("SELECT id, tytul FROM tabela_1 UNION SELECT id, tytul FROM tabela_2 WHERE id<100 ORDER BY tytul")


- czy to jest poprawne? Domyślam się że nie bo analogiczne nie działa ;]

Kod
mysql_query("SELECT id, tytul FROM tabela_1 UNION SELECT id, tytul FROM tabela_2 WHERE tabela_1.id<100 AND tabela_2.id ORDER BY tabela_1.tytul AND tabela_2.tytul")


?
Dzięki za pomoc dry.gif


--------------------
Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Za pomocą UNION łączysz wyniki kilku zupełnie niezależnych SELECTów. Nie możesz więc w jednym z nich odwoływać się do drugiego. Jeżeli chcesz nadać jakieś warunki to zrób to w poszczególnych SELECTach lub już poza UNION używając konstrukcji:
  1. SELECT * FROM (SELECT ... UNION SELECT...) t WHERE t.pole > 100;
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 Aktualny czas: 20.08.2025 - 23:23