webForumDet fria alternativet

innerjoin?

2 svar · 221 visningar · startad av st0ffe

st0ffeMedlem sedan mars 200218 inlägg
#1

hej. jag har inte fattat det här med innerjoin riktigt. jag har dessa tabeller:

produkt
id
artistid
skivbid
typid
formatid
prisid
titel
beskrivning
katnr
ny

artist
id
artist

formatet
id
format

pris
id
pris

skivb
id
skivb

typ
id
typ

Jag vill hämta data beroende på två variabler, $searchOption och $searchCondition.

Om dessa är t.ex. $searchOption = skivbolag, $searchCondition = "Adrian Recordings" så skall jag hämta all information om alla produkter som har "Adrian Recordings" som skivbolag. Dessa ska sedan sorteras efter artistens namn och titel på produkten.

Då måste jag juh först kolla i skivb och hämta det id:t, jämföra detta med skivbid i produkt. Sedan hämta all data i de andra tabellerna beroende på id i produkt (t.ex. pris och artist). Efter detta ska jag sortera på artist.artist, produkt.titel.

Hur skall denna sql-frågan se ut?

st0ffeMedlem sedan mars 200218 inlägg
#2

ok.. jag har:

$result = mysql_query("SELECT produkt.*, artist.artist FROM produkt
INNER JOIN artist ON produkt.artistid = artist.id 
WHERE produkt.ny = 1 ORDER BY artist");

	while($data = mysql_fetch_array($result))
	{
		echo $data[artist]."<br>";
	
}

Men hur får jag ut övriga värden ur de andra tabellerna?
Är det flera innerjoins som gäller eller?

LarsGMedlem sedan dec. 200012 465 inlägg
#3

Jo, det är det. Du kan ha så många som behövs

SELECT produkt.*, artist.artist 
  FROM produkt INNER JOIN artist 
      ON produkt.artistid = artist.id 
  INNER JOIN skivb 
      ON produkt.skivbid = skivb.id
WHERE produkt.ny = 1 
     AND SKIVB = 'Adrian Recordings'
ORDER BY artist, produkt.titel
Genererad på 365 ms · cache AV · v20260730165559-full.f96bc7eb