Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> łączenie tabel + konkatenacja ciągów
sowi
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.03.2004

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


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


Ten post edytował sowi 25.04.2006, 00:29:39
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sowi
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.03.2004

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


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
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Poprawiam tytul topicu smile.gif


--------------------
Nie lubię jednorożców.
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 - 11:59