Avatar billede apromis Praktikant
12. november 2010 - 09:13 Der er 2 kommentarer og
1 løsning

Inner join

Hej allesammen.

Mit projekt i dag er at forstå inner join i alm. sql :)

function sel($hvad, $tabel, $hvilket) {
$find_res ="1";
$find = "select " .$hvad ." from " .$tabel ." " .$hvilket;
$find_res = mysql_query($find) or die(mysql_error()); 
return $find_res;


function cat($i, $v) {
$cat = "<select id=\"cat" .$i ."\" name=\"cat" .$i ."\">";
$cat .= "<option value=\"0\">V&#230;lg en kategori</option>";
$hvad = "ID,navn";
$tabel = "produkt_cat";
$hvilket = "order by ID asc"; 
$find = sel($hvad, $tabel, $hvilket);
while($row = mysql_fetch_array($find)){
$cat .= "<optgroup label=\"" .$row["navn"] ."\">";
$hvad = "ID,navn";
$tabel = "produkt_index";
$hvilket = "where kategori='" .$row["ID"] ."'"; 
$find1 = sel($hvad, $tabel, $hvilket);
while($row1 = mysql_fetch_array($find1)){
$select ="";
If ($v=="1" AND $row1["ID"] == "19") {$select ="selected";}
If ($v=="100" AND $row1["ID"] == "34") {$select ="selected";}
If ($_POST["cat" .$i] != "0" and $_POST["cat" .$i] == $row1["ID"]) {$select ="selected";}
$cat .= "<option value=\"" .$row1["ID"] ."\" " .$select .">" .$row1["navn"] ."</option>";
}
$cat .= "</optgroup>";
}
return $cat;
}

output er noget lignede (i en selectboks) :
Overskrift 1
- produkt 1
- produkt 2
- produkt 3
Overskrift 2
- Produkt 4
- Produkt 5
- Produkt 6

Må bør da kunne skære dette ned til en SQL ?

I skal ikke ikke rette i min sql function, det skal jeg nok selv klare. Skal bare prøve at lave en inner join som laver trækket i en sql.
Databasen :

Tabel 1
ID navn
1 Overskrift 1
2 Overskrift 2

Tabel 2
ID product_cat navn
1 1 Produkt 1
2 1 Produkt 2
3 1 Produkt 3
4 2 Produkt 4
5 2 Produkt 5
6 2 Produkt 6

Bør det ikke være muligt at lave inner join på den product cat  ?

På forhånd tak
Avatar billede mcb2001 Nybegynder
12. november 2010 - 11:08 #1
inner join.

du bruger inner join i samarbejde med en select statement, hvor du gerne vil joine (sammensætte) to tabeller, ud fra en eller flere givne parametere. og vil sikre at der skal være sammenfald i begge tabeller. i modsætning til outer join, der bare indsætter NULL hvis der ikke er data tilgængeligt fra den anden tabel.

du bruger det f.eks. til:

select *
from tbl_kunder
inner join tbl_faktura
on tbl_kunder.nummer = tbl_faktura.kundenummer

Her vil du få alle de kunder, der har en faktura, og returneret en liste indeholdende hele fakturaen og alle kundens informationer, sat sammen som en stor tabel.
Avatar billede apromis Praktikant
14. november 2010 - 21:30 #2
Tak for hjælpen.
Vil prøve at rodde videre med det :).

På forhånd tak

Du kan svare og pointsne er dine :)
Avatar billede mcb2001 Nybegynder
15. november 2010 - 08:12 #3
velbekommen
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester