Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wydobycie tego samego pola pod 2ma nazwami
Forum PHP.pl > Forum > Bazy danych > MySQL
misty
hej, mam taki problem - sa 2 tabele A (zawiera rozne pola, w tym pole 'name1' i 'name2') i B (zawiera rozne pola, w tym pola 'name' i 'alias').

Pola 'name1' i 'name2' zawsze sa rowne ktoremus z pol 'name' w tabeli B. to co chce wyciagnac, to wszystko z tabeli A, where (jakies warunki) i (np):

name1 = ''nazwa1",
name2 = "nazwa2"

ale zamiast name1, name2 wyswietlic odpowiadajace im alias'y z tabeli B. dla jednego pola (np dla name1) nie ma problemu, ale dla dwoch nie wychodzi..:/

probowalam z czyms takim:

  1. SELECT B.alias AS name1_alias, B.alias AS name2_alias, A.pole1, A. pole2, FROM A, B
  2.  
  3. WHERE A.name1 = "baglink_iad"
  4. AND B.alias = A.name1
  5. AND B.alias A.name2


no, ale jak wspomnialam nie wychodzi. jestem pewna ze da sie cos takiego zrobic. czy ktos z Was ma moze jakies sugestie?


pzdr,
misty
Adi32
Mam nieodparte wrażenie, że odpowiedź jest banalnie prosta ale niestety nie rozumiem o co Ci chodzi, szczerze mówiąc nie widzę nawet sensu takiego działania...

Jeżeli nikt nie rozwiąże Twojego problemu to spróbuj opisać więcej szczegółów...
misty
Teraz to ja nie rozumiem dlaczego nie widzisz sensu takiego dzialania..
Dobra, sprobuje wyjasnic prosciej: jest tabela A i B. A ma pole 'nazwa1' i 'nazwa2'. Ich wartosci zawsze zawieraja sie w polu 'nazwa' tabeli B (ps. nie ja projektowalam te baze. nie moge tez jej zmienic). Tabela B, posiada tez pole 'alias' dla 'nazwa'. No i chce wyciagnac alias dla 'nazwa1' i alias dla 'nazwa2' przy jakis tam warunkach. w jednym zapytaniu. rozumiesz czy nadal srednio?
Adi32
Cytat(misty @ 2.07.2011, 18:22:39 ) *
rozumiesz czy nadal srednio?


Ni cholery...

Cytat
Pola 'name1' i 'name2' zawsze sa rowne ktoremus z pol 'name' w tabeli B


Oba? ;/

Po cholerę kolumna nazywa się alias? Jak tłumaczysz to nie wiadomo czy chcesz robić alias kolumnie czy chodzi Ci o alias jako kolumnę...

Wszystko w sumie pokręcone. Może lepiej napisz co chcesz na prawdę uzyskać, jaki tego cel...
BaN
  1. SELECT b1.alias AS name1_alias, b2.alias AS name2_alias, ...
  2. FROM `A`
  3. LEFT JOIN `B` AS b1 ON b1.name=`A`.name1
  4. LEFT JOIN `B` AS b2 ON b2.name=`A`.name2

Jeżeli odpowiednie rekordy w tabeli B na pewno istnieją, to można ewentualnie zamienić LEFT JOIN na JOIN
misty
dzieki, wlasnie o to mi chodzilo! 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.