11. marts 2012 - 22:01Der er
5 kommentarer og 1 løsning
INNER JOINS
Hej allesammen
jeg er lidt ny i php verdenen og vil lære lidt php og er nået til INNER JOINS
jeg har nogle exp på dem her:
SELECT C.category_id, count(C.category_id) as k FROM `#__jshopping_categories` as C inner join `#__jshopping_categories` as SC on C.category_id=SC.category_parent_id group by C.category_id"
--------------
SELECT usergroup.usergroup_discount FROM `#__jshopping_usergroups` AS usergroup INNER JOIN `#__jshopping_users` AS users ON users.usergroup_id = usergroup.usergroup_id WHERE users.user_id = '
Nogle som evt kunne forklar mig hvordan og hvorledes den virker og hvad de betyder
Tak for et hurtig svar arne_v :) kunne du evt skær det lidt mere ud i pap for mig? INNER JOINS noget helt nyt for mig :/
hvis du skulle forklar i ord disse sættinger hvor vil du?
1: --- SELECT C.category_id, count(C.category_id) as k FROM `#__jshopping_categories` as C inner join `#__jshopping_categories` as SC on C.category_id=SC.category_parent_id group by C.category_id" ----
2: --- SELECT usergroup.usergroup_discount FROM `#__jshopping_usergroups` AS usergroup INNER JOIN `#__jshopping_users` AS users ON users.usergroup_id = usergroup.usergroup_id WHERE users.user_id = ' ----
Jeg er selv igang med at lære og står tæt på dit udviklingstrin, så lad os dele lidt erfaringer. Jeg tror dit spørgsmål handler om to ting, for det første det at joine tabeller, for det andet brug af aliaser, så som C, når man joiner tabellerne. Arne_v har forklaret brugen af aliaser. Hvis det drejer sig om begyndelsesgrundlaget i det at trække data fra flere tabeller ved at joine dem, så er her noget teori jeg stadig har frisk i erindring:
Lad os sige du har en tabel med kategorier således
kategorier kat navn 1 køretøjer 2 redskaber
og en tabel med varer
varer id navn kat 1 cykel 1 2 skovl 2 3 spade 2
Så vil du lave en udskrift over alle varer med kategorinavnene. De oplysninger står i to tabeller, så dem må du kombinere, JOINe
Denne forespørgsel, SELECT * FROM varer JOIN kategorier, giver dig alle kombinationer af de to tabeller, altså
Det var bedre, men der står stadig for meget unødigt i hver række. Du har kun brug for varenavnet og kategorinavnet.
SELECT varer.navn, kategorier.navn FROM varer JOIN kategorier ON varer.kat = kategorier.kat
som giver dig dette:
cykel køretøjer skovl redskaber spade redskaber
Og så kommer vi til aliaserne, øgenavnene, som allerede forklaret. For at gøre forespørgslen kortere og mere oversigtelig kan du give tabellerne øgenavne, varer = v og kategorier = k, således:
SELECT v.navn, k.navn FROM varer v JOIN kategorier k ON v.kat = k.kat
Og så tilføje, at i mysql betyder JOIN det samme som INNER JOIN. (Der er andre slags joins, dem kommer du nok til i næste kapitel af teoribogen.)
Det specielle ved den kode du viser i spørgsmålet er, at du joiner en tabel med sig selv. Du har åbenbart kategorier og underkategorier såsom:
For at kunne joine to forskellige versioner af tabellen med hinanden giver du tabellen to forskellige øgenavne, SELECT ...... FROM #__jshopping_categories as C inner join #__jshopping_categories as SC....
Jeg håber det må være til hjælp (eller var forklaringen så lang at du i mellemtiden glemte hvad problemet var?)
jeg har brugt de samme ex og prøvet mig frem tak for hjælpen :) har fået en bedre viden om INNER JOINS
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.