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 |
|
|
|
Dycu [sql] SELECT i bardzo dużo kolumn 17.07.2008, 12:59:21
Shili Prawdę mówiąc nie widzę sensu takiego rozdrobnieni... 17.07.2008, 13:21:22
Dycu Wygodniej mi przechowywać samo id w tej tabeli jak... 17.07.2008, 13:48:29
Shili Podałaś.
CytatWygodniej mi przechowywać samo id w... 17.07.2008, 13:54:07
Dycu CytatPodałaś.
Przepraszam.
CytatZawsze możesz st... 17.07.2008, 14:06:39
Shili Polecam w takim razie jeszcze raz widoki. 17.07.2008, 14:10:00
sowiq Dycu, podczas wyświetlania stosujesz tablicę asocj... 17.07.2008, 14:25:04
miskorz Kwestia optymalizacji zapytania swoją drog... 17.07.2008, 22:09:44
sowiq Cytat(miskorz @ 17.07.2008, 23:09:44 ... 21.07.2008, 11:15:09 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 00:12 |