![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
witam, na wikibooks czytam kurs o relacjach i jest taki przykład
"Przy każdym rekordzie w tabeli ksiazki pole kategoria_id przechowuje numeryczny ID rekordu kategorii, do którego dana książka jest przypisana." po wpisaniu SELECT kategorie.nazwa FROM ksiazki, kategorie WHERE kategorie.id = ksiazki.kategoria_id AND ksiazki.id = 3; pojawia sie +-------------------+ | nazwa------------| +-------------------+ | Literatura polska | +-------------------+ 1 row in set (0.02 sec) czy moglibyscie mi wytłumaczyc w ktorym miejscu kategoria_id przechowuje numeryczny ID rekordu kategorii? czy chodzi o PRIMARY KEY (id)? jesli tak to skad wiadomo ze chodzi o id kategorii a nie id rekordu ksiazki? a takze wyjasnic dlaczego w zapytaniu wystepuje ta kropka? po prostu prosiłbym o wytłuamczenie mi podstaw działania relacji bo przeczytalem dwa kursy i nie do konca to rozumiem Ten post edytował michat34 5.10.2012, 15:57:33 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
KEY to zwykły indeks?
nie rozumiem uzycia kropek w zapytaniu, głownie o nie mi chodzi |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie rozumiem uzycia kropek w zapytaniu, głownie o nie mi chodzi Po pierwsze nie napisałeś, że o to Ci chodzi. Po drugie to na tyle oczywiste, że jakbyś się przez kilka sekund zastanowił, to sam byś do tego doszedł. Kropką rozdzielana jest nazwa tabeli i nazwa kolumny. Jeśli robisz zapytanie z jednej tabelki, to wystarczy podawać nazwy kolumn. Ale jeśli (jak w Twoim przykładzie) wykonujesz zapytanie pobierające dane z kilku tabel, to przed nazwami kolumn dodaje się nazwy tabel, np.: tabela1.kolumna_x, tabela7.kolumna_56. Dodawanie nazwy tabeli jest w MySQL wymagane tylko jeśli w co najmniej dwóch tabelach, o które pytasz w zapytaniu, istnieją tak samo nazwane kolumny, o które pytasz. Ten post edytował sowiq 5.10.2012, 16:07:15 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ech, sowiq
Dodawanie nazwy tabeli jest w MySQL wymagane tylko jeśli w co najmniej dwóch tabelach, o które pytasz w zapytaniu, istnieją tak samo nazwane kolumny, o które pytasz. Nieprawda. Nie zawsze jest wymagane. Należy podać (jeśli są takie same pola) przy: łączeniu (JOIN), warunkach (WHERE), sortowaniu (ORDER BY) i grupowaniu(GROUP BY). Przy zwykłym SELECT nie musi być... Problemy jakie z tego wynikną - cóż, takie same, jakby były prefiksowane nazwą tabeli... Znacznie lepiej takie pola dodatkowo aliasować. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 18:59 |