Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czy ktoś wie jak to zrobić ?
Forum PHP.pl > Forum > Bazy danych > MySQL
www.aukcje.fm
Witam,

Jak można takie zapytanie zadaćquestionmark.gif

  1. SELECT `kolumna1` FROM (SELECT `table_title` FROM `tables` WHERE `table_id` = 1 ) WHERE `id` = 100


Bo nie działa smile.gif Pewnie że po where można dawać drugiego selecta.
matiit
  1. SELECT `kolumna1` FROM (SELECT `table_title` AS tt FROM `tables` WHERE `table_id` = 1 ) AS table WHERE `id` = 100


Spróbuj tak
sazian
1)pobierasz tylko kolumnę table_title, a odwołujesz się do id i kolumna1
2)jeśli używasz podzapytania jako tabeli to tabela(czyli podzapytanie) musi być nazwana
czyli
  1. SELECT `kolumna1` FROM (SELECT `table_title`,kolumna1,id FROM `tables` WHERE `table_id` = 1 ) tabela WHERE `id` = 100
www.aukcje.fm
Niestety daje odpowiedź #1248 - Every derived table must have its own alias z drugiej propozycji.

Z pierwzej propzycji zwraca błąd #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table WHERE `id` = 1' at line 1


HELP exclamation.gif! facepalmxd.gif
matiit
Wrzuć schema na sqlfiddle to Ci napiszę zapytanie
thek
Po pierwsze... Nazywaj tematy po ludzku a nie "problem" i inne podobne bo to Ci nie pomaga...
Po drugie... Po co Ci taka nienormalna konstrukcja i potworki? Tylko błędy niepotrzebnie możesz połapać. Nie będę dawał jak to poprawić do Twojej formy, ale zaproponuję może byś zamiast cudować użył:
  1. SELECT `kolumna1` FROM `tables` WHERE `table_id` = 1 AND `id` = 100

Twoje pomysły mają czasem sens gdy mamy do czynienia z wieloma JOINami i chcemy bazowy zestaw ograniczać już albo tworzymy bardzo specyficzne zapytanie. Ty jedynie ograniczasz się do podzbioru głównej tabeli. I stąd pierwszy warunek w WHERE.
matiit
thek, wydaje mi się, że autor ma wiele tabel i w jakiejś kolumnie przechowuje ich nazwy.
thek
I właśnie dlatego na tym forum tak gęsto i często prosi się o dokładne opisanie problemu. Teraz mogę jedynie opierać się o to co napisał autor tematu. Reszta to wróżenie z fusów i "co autor miał na myśli" wink.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-2024 Invision Power Services, Inc.