Jak użyć kilkukrotnie SELECT.

Jak użyć kilkukrotnie SELECT.
BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 259
0

Mam tabelę z takimi polami:

Kopiuj
CREATE TABLE IF NOT EXISTS Lista(
    Tabela VARCHAR (40),
    Kolumna VARCHAR (30),
    Maxiumum VARCHAR (30)
);

Tabela ta zawiera listę tabel z nazwami kolumn czyli Tabela = nazwa tabeli, a Kolumna = nazwa kolumny. Jak pobrać dane z tych tabel? Myślałem coś na zasadzie:

Kopiuj
SELECT (SELECT Kolumna FROM Lista) AS T1 FROM (SELECT Tabela FROM Lista) AS T2;

ale niestety coś takiego nie działa.
Piszę pod MySql.

HI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1863
0

Chcesz otrzymać dane ze wszystkich tabel jako jedną dużą tabelę?

BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Napisz co chcesz dokładnie uzyskać i po co. Może wystarczy zrobić kilka UNIONów ?

BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 259
0

Nie do końca to jest moim celem, ale też. Ogólnie to muszę napisać procedurę, która dla każdej pary (tabela,kolumna) ustali maksymalną wartość w tej kolumnie( czego do końca nie rozumiem czy chodzi o maksymalną wartość pola, czyli jeśli to będzie VARCHAR(30) to zwróci 30 czy chodzi o jej wartość, ale na wszelki wypadek zrobię obie wersje) i zaktualizuje pole Maximum.

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

PREPARE przyjacielem twym. (BTW: Nieźle cię ktoś wkopał)

BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 259
0

Nie bardzo rozumiem jak bym miał użyć tego PREPARE

HI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1863
0

Do zmiennej wrzucić odpowiednie zapytanie (kombinował bym z pętlą i GROUP_CONCAT) i wykorzystać PREPARE do wywołania go.

Musisz to zrobić w samym MySQL'u?
Czy liczy się wynik?

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
0

Robisz sobie zapytanie do swojej tabeli lista (cursor) gdzie zwracasz tabelę i nazwę kolumny, następnie za pomocą prepare robisz zapytanie złączając kolumny/tabele z powyższego cursora.
Przykład:
http://forums.mysql.com/read.php?61,264623,264623

Następnie odpalasz złożone zapytanie i zwracasz wynik. W kolejnym kroku robisz update odpowiedniego rekordu w tabeli lista.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.