Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: łączenie tabel + konkatenacja ciągów
Forum PHP.pl > Forum > Bazy danych
sowi
witam,
mam taki problem
są 2 tabele




potrzebuje je połączyć na podstawie nb_polisy.polisa_klient=nb_klienci.klienci_id. Problem w tym ze identyfikatory w tabeli nb_polisy.polisa_klient posiadają przedrostki kp lub kk w zależności od rodzaju klienta. Czy jest jakaś możliwość aby w zapytaniu sql połączyć ciągi?

Zapytanie które potrzebuje zrobić wyglądałoby tak, gdyby nie te przedrostki...
  1. SELECT nb_polisy.polisa_numer, nb_klienci.klient_nazwisko
  2. FROM nb_polisy,
  3. nb_klienci
  4. WHERE nb_polisy.polisa_klient=nb_klienci.klienci_id
nospor
ojej, jesli masz mozliwosc, to zmien strukturę tabeli polisa na taką, ktora zawiera normalny klucz obcy do tabeli klient.

Jesli jednak nie masz takiej mozliwosci, to:
  1. SELECT nb_polisy.polisa_numer, nb_klienci.klient_nazwisko
  2. FROM nb_polisy,
  3. nb_klienci
  4. WHERE nb_polisy.polisa_klient=concat('kk',nb_klienci.klienci_id) OR nb_polisy.polisa_klient=concat('kp',nb_klienci.klienci_id)
sowi
no wlasnie o ten concat mi chodzilo smile.gif biggrin.gif

to teraz mam jeszcze jeden problem.
No bo trochę rozszerzyłem tą kwerendę no i wyszło:
  1. SELECT nb_polisy.polisa_numer, nb_klienci.klient_nazwisko AS nazwa, tu_nazwa
  2. FROM nb_polisy,
  3. nb_klienci, nb_tu
  4. WHERE nb_polisy.polisa_tu=nb_tu.tu_id AND nb_polisy.polisa_klient=concat('kp',nb_klienci.klienci_id)
  5.  
  6. UNION ALL
  7.  
  8. SELECT nb_polisy.polisa_numer, nb_kliencik.klientk_nazwa AS nazwa, tu_nazwa
  9. FROM nb_polisy,
  10. nb_kliencik, nb_tu
  11. WHERE nb_polisy.polisa_tu=nb_tu.tu_id AND nb_polisy.polisa_klient=concat('kk',nb_kliencik.kliencik_id)

problem w tym, że be UNION ALL działa wszystko poprawnie - to znaczy kwerendy oddzielnie, natomiast nie chce się to połączyć sad.gif
dr_bonzo
Poprawiam tytul topicu smile.gif
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.