ďťż
 
[MySQL] jak to zgrabnie wyrazic? ďťż
 
[MySQL] jak to zgrabnie wyrazic?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[MySQL] jak to zgrabnie wyrazic?



Tomasz Cenian - 13-03-2007 00:04
[MySQL] jak to zgrabnie wyrazic?
  Witam, na wstępie, są takiego tabele (w uproszczeniu oczywiscie):

ZAPYTANIA
------------

zapytanie_id
zapytanie_oferta_id
zapytanie_klient_id

KLIENCI
--------
klient_id
klient_nazwisko
klient_imie

OFERTY
-------

oferta_id
inwestycja_id

INWESTYCJE
----------

inwestycja_id
inwestycja_adres
developer_id

DEVELOPERZY
------------

developer_id
developer_nazwa

I teraz chce wyswietlic zapytania w postaci (w uproszczeniu):

zapytanie_id || klient_nazwisko || inwestycja_adres || developer_nazwa

Czy da się to jakoś zgrabnie ubrać w jedno wyrażenie SQL?
Przy czym mogą istnieć "puste" zapytania, które nie mają odpowiedników w
ofertach i/lub klientach, jednak je również należy wyświetlić.
Może np istnieć sytuacja, gdzie "zapytanie_klient_id" nie ma swojego
odpowiednika w tabeli klienci, natomiast caly czas jest oferta, której
dotyczy takie zapytanie. Taki wiersz należy wyświetlić, podobnie jak np
odwrotna sytuacja: istniej klient, ale nie istnieje już oferta, której
zapytanie dotyczy. Po prostu odpowiednie pola w "listingu" zapytań będą
puste.

Kobinowałem np tak, żeby jakoś się przymierzyć do tego:

SELECT * FROM zapytania z LEFT JOIN (klienci k, oferty o)
ON (k.klient_id = z.zapytanie_klient_id AND
o.oferta_id = z.zapytanie_oferta_id)

ale to jest do kitu, bo gdy istnieje np odpowiadajacy klient a nie ma
oferty to nie przypisuje oferty, itd itp...

A żey wyciągnąc nazwę developera to trzeba się przebić juz przez dwa
poziomy zależności...
Pytanie: da się to ładnie ubrać jednym zgrabnym wyrażeniem, czy muszę
dłubać naokoło wieloma zapytaniami, czego oczywiście z różnych powodów
wolałbym uniknąc....

Pozdr,
TC





Tomasz Cenian - 13-03-2007 00:04

  Tomasz Cenian napisał(a):
>
> Kobinowałem np tak, żeby jakoś się przymierzyć do tego:
>
> SELECT * FROM zapytania z LEFT JOIN (klienci k, oferty o)
> ON (k.klient_id = z.zapytanie_klient_id AND
> o.oferta_id = z.zapytanie_oferta_id)
>
> ale to jest do kitu, bo gdy istnieje np odpowiadajacy klient a nie ma
> oferty to nie przypisuje oferty, itd itp...
>

Może tak

SELECT * FROM zapytania z
LEFT JOIN klienci k ON k.klient_id = z.zapytanie_klient_id
LEFT JOIN oferty o ON o.oferta_id = z.zapytanie_oferta_id
LEFT JOIN .....

itd aż sie dokopię do wszystkiego co trzeba?

Może można lepiej/inaczej?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • quentinho.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com