![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem. Powiedzmy, że posiadam dwie tabele, w jednej znajduje się id_uzytkownika i ok. 200 kolumn zawierających dane liczbowe odnośnie jakiegoś pomiaru przeprowadzonego przez tego użytkownika. Druga tabela zawiera id i nazwę tego użytkownika:
1 Tabela: id id_uzytkownika wartosc1 wartosc2 ... wartosc200 2 Tabela: id_uzytkownika nick Chciałbym teraz wyciągnąć dane z pierwszej tabeli, ale zamiast id_uzytkownika włożyć w to miejsce nick użytkownika. Wyszukałem, że takie rzeczy robi się za pomocą SELECT'a z zastosowaniem "as" do odnoszenia się do odpowiednich kolumn. Niestety przy tej ilości kolumn jeśli miałbym każdą z nich osobno adresować to chyba bym się zapisał na śmierć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Czy są jakieś metody na np. wyciąganie wszystkich kolumn oprócz skończonej ilości? Bądź jakiś inny sposób aby to przeprowadzić (z poziomu mysql)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tablicę numeryczną, gdyż nie zamierzam się odwoływać do każdego elementu po nazwie (przy 200 elementach w linii to jednak problem), a tak lecę zwykłą pętlą. A jeśli kolejność jest zachwiana, to muszę się martwić tym, żeby zamiast id wrzucać w dane miejsce nick z ostatniej kolumny.
Wydaje mi się, że te widowki to rozwiązanie mojego problemu, muszę się tylko pobawić w stworzenie odpowiedniego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Niestety muszę odświeżyć pytanie. Skonstruowałem coś takiego: Cytat CREATE VIEW ReturnData (id,nazwa,symbol,nazwaZespolu, 200 kolumn danych) AS SELECT id, nazwa, symbol, nazwaZespolu, 200 kolumn danych FROM ( SELECT * FROM Wroclaw LEFT JOIN Zaklady ON Wroclaw.zaklad_id = Zaklady.idZ LEFT JOIN Urzadzenia ON Wroclaw.urzadzenie_id = Urzadzenia.idU ) AS t; Czyli chciałem najpierw połączyć 3 tabele, a potem z tego wybrać i ustawić w odpowiedniej kolejności interesujące mnie dane. I jak się okazuje mysql nie pozwala na SELECT'y w podzapytaniach, więc znów jestem w lesie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Bo nie widzę innego sposobu na pobranie tego tak jak potrzebuję. Jakieś pomysły czy zostać przy ustawianiu kolumn w odpowiedniej kolejności już w php? Ten post edytował Dycu 17.07.2008, 16:08:21 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a tak lecę zwykłą pętlą. Yhym. Mówisz, masz:
Voila' :] [edit] Aha, jeszcze jedno. Z doświadczenia wiem, że od Kod SELECT * FORM `table1`, `table2` WHERE `table1`.`t1_id` = `table2`.`t2_id` AND `table1`.`t1_id` > 100 wydajniej jest użyć: Kod SELECT * FROM `table1` LEFT JOIN `table2` ON `table1`.`t1_id` = `table2`.`t2_id` WHERE `table1`.`t1_id` > 100 Sposób taki daje nie tylko większą szybkość działania, ale i przejrzystość kodu, jeśli łączysz więcej tabel. http://dev.mysql.com/doc/refman/5.0/en/lef...timization.html Ten post edytował sowiq 17.07.2008, 17:02:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 10:08 |