Wykaz postów użytkownika - medyq - które otrzymały punkt za pomoc
medyq | |
|
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: Rozwiń Kod źródłowy 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 Rozwiń Kod źródłowy Druga sprawa to kolumny które przyrównujesz do siebie po każdej akcji "sklejenia" czyli np: Rozwiń Kod źródłowy 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. |