Czy można użyć nazwę tabeli w klauzuli where jeżeli wcześniej nadaliśmy jej alias?

0

J.w. niestety nie potrafiłem znaleźc odpowiedzi na moje pytanie.

SELECT * FROM tabela as t WHERE tabela.kolumna = warunek

Jest może jakieś obejście?

1

Co to znaczy nie znalazłeś? Czy nie chciało ci się sprawdzić, szybciej byś to zapytanie puścił na bazie niż napisał pytanie na forum...

Nie da się tak zrobic dostaniesz komunikat:
The multi-part identifier "tabela.kolumna" could not be bound.

Po to się tworzy aliasy by z nich korzystać

Obejście to usunąć alias...

0

Chciało i sprawdziłem, i dostałem error. Ciekawiło mnie czy można to jakoś obejść. Niestety jest mi to potrzebne bo zkładam query dynamicznie, ale dzieki za odp.

0

Nie rozumiem, co ma zakladanie dynamicznego zapytania do nieznajomosci aliasu/tabeli?

0

Tworzyłem coś takiego jak scope, który pozwala dodawać warunki where, z tym że chciałem aby można było podać generyczną nazwę tabeli np. contacts, a query dołączone do zapytania zmieni contacts na alias, który jest już użyty przy joinie np. Nie wiadomo jaki zostanie podan alias, stąd to pytanie, ale już sobie poradziłem.

1

Ja to obchodzę tak, że jak generuje dyamiczny where znając tylko nazwy kolumn to obchodzę to poprzez stworzenie zapytanie z podzapytaniem. Czyli np. w Twoim wypadku zrobiłbym tak:

SELECT * 
FROM   (SELECT * 
        FROM   tabela AS t) AS tabtoQuery 

I wtedy nie mam problemów jak jest budowany główny select bo pytam tylko kolumny...

1 użytkowników online, w tym zalogowanych: 0, gości: 1