Zobacz temat
Wyjaśnienie działania zapytanie do bazy danych MySQL
|
|
Kshyhoo |
Dodany dnia 27.01.2010 22:02:38
|
Przedszkolak Postów: 49 Pomógł: 1 v7.02.07 Data rejestracji: 13.12.2004 21:33 |
Mam pewien problem, nie wiem mianowicie, o co biega w strukturze tabel. Może ktoś mądrzejszy mi wytłumaczyć: Chodzi mi najbardziej o te "ta", "tac"... PW od moderatora:
Edytowane przez Pieka dnia 27.01.2010 22:16:44 Copyright (C) by Kshyhoo (R) Wszystkie prawa zastrzeżone. |
|
|
Wścibski Gość |
Dodany dnia 22.12.2024 21:30:28
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
medyq |
Dodany dnia 28.01.2010 08:57:27
|
Przedszkolak Postów: 3 Pomógł: 1 Ostrzeżeń: 1 Data rejestracji: 24.11.2009 10:27 Złamana licencja |
Te "ta" czy "tc" są unikalnymi nazwami dla tabel jakie wykorzystujesz w danym zapytaniu żeby posklejać kilka tabel do kupy w jednym resulcie w danej chwili. Jest kilka warunków które trzeba spełnić żeby tego użyć. Po pierwsze skrótowa nazwa tabeli któej użyjesz po SELECT musi zostać powtórzona w daleszej części zapytania po oryginalnej nazwie tabeli. Czyli jak wymyśliłeś (tak te ksróty są całkowicie dowolne) sobie że chcesz wyjąć artykuł z bazy (jak w pierszym przykładzie) to musi wyglądać to tak: Gdzie w miejsce xxx i yyy w kodzie dajesz swoje nazwy - najlepiej skrótem 2-3 literowym całkowicie dowolnym. Pamiętaj że zapis xxx.* oznacza wyjęcie wszystkich danych z tabeli xxx a zapis xxx.user_id wyjmie tylko user_id z tabeli xxx. Nie zapomnij też zdefiniować w dalszej części co to jest xxx czyli np Druga sprawa to kolumny które przyrównujesz do siebie po każdej akcji "sklejenia" czyli np: muszą odnosić się do tego samego czyli w obu przypadkach jest to id_usera które w obu tabelach figuruje pod różnymi nazwami kolumn. Używasz tego żeby jak wspomniałem wyjąc/wyszukać w bazie wielu danych ze sobą powiązanych. Drugi przykład pasuje bardzo dobrze do tego wyjaśnienia. Chcesz wiedzieć zarówno o artykule jak i wiedzieć kto go napisał. Domyślnie w tabeli artykułów wiesz tylko jakie jest id autora i pisząc dla pierwszego cytatu powyżej wynika z $data['user_name'] nic nie otrzymasz bo zapytanie nie wie jakie jest user_name nawet nie wie skąd to wyjąc :P Dzięki połączeniu tabel przyrównasz łatwo_id autora do user_id i dzięki temu będziesz wiedział jakie jest user_name czyli przykład drugi. Takie akcje łatwo optymalizują zapytania do bazy gdyż zamiast np szukać czegoś w jakiejś tabeli a dla znalezionego wyniku szukać czegoś w innej to zapisujesz to tak jak powyżej dzięki czemu unikasz często pętli i wielokrotnych zapytań. Nie umiem tłumaczyć - wole operować na przykładach ^^ jak masz pytania to pisz. Edytowane przez medyq dnia 28.01.2010 09:02:53 |
|
|
Kshyhoo |
Dodany dnia 28.01.2010 11:23:19
|
Przedszkolak Postów: 49 Pomógł: 1 v7.02.07 Data rejestracji: 13.12.2004 21:33 |
Dzięki za wytłumaczenie, choć już wczoraj znalazłem co nieco na ten temat. Wiadomość doklejona: OK, więc jeżeli mam tabelę "artykuly", gdzie przechowuję tylko id kategorii: "arty_kat" i tabelę "kategorie" z "kat_id" i nazwą kategorii "kat_kategoria", to jak zapytać bazę, żeby wyświetliło mi np. tytuł artykułu i pełną nazwę kategorii? Rozwiń Kod źródłowy MYSQL Czy tak? Czy mogę użyć takiego kodu do stronicowania? Rozwiń Kod źródłowy MYSQL ?? Edytowane przez Kshyhoo dnia 28.01.2010 12:47:54 Copyright (C) by Kshyhoo (R) Wszystkie prawa zastrzeżone. |
|
|
bartek124 |
Dodany dnia 28.01.2010 23:18:48
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
Obie tabele musisz czymś złączyć. Po wstaw
|
|
Przejdź do forum: |