Just nu i M3-nätverket
Gå till innehåll

Hämta två olika värden med left join


Aktuellspeedway.se

Rekommendera Poster

Aktuellspeedway.se

Tjenixen!

 

Har stött på ett problem när det gäller LEFT JOIN, Har i en tabell två olika kolumner med idvärden, i detta fallet heter dom Lag1ID och Lag2ID.

 

Utifrån desa värden vill jag i en annan tabell hämta TVÅ olika rader från kolumnen LagID, först den raden med id från Lag1ID och sen raden med id från Lag2ID

Om ni förstår?

 

Någon som kan hjälpa mig?

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Du får göra en union av två liknande frågor:

SELECT * FROM lag l LEFT JOIN lagData ld
   ON l.Lag1ID=ld.LagID
UNION
SELECT * FROM lag l LEFT JOIN lagData ld
   ON l.Lag2ID=ld.LagID

Länk till kommentar
Dela på andra webbplatser

Aktuellspeedway.se

Jag får det fortfarande inte att funka, Ska WHERE och ORDER BY också upprepas?

 

Den kod jag nu jobbat fram är följande, men som sagt då får jag laget med lägst id både hemma och borta.

 

 

<?php

$link = @mysql_connect ("******","****","****") or die ("kunde inte ansluta");
mysql_select_db("*****",$link);

if (isset($_GET["id"])){
$get_id = mysql_real_escape_string($_GET["id"]);
$result = mysql_query("SELECT JOSTU_Schedule_2010.Datum, JOSTU_Schedule_2010.Lag1ID, JOSTU_Schedule_2010.Lag2ID, JOSTU_Teams.Klubb, JOSTU_Schedule_2010.Omgång, JOSTU_Teams.LagID, JOSTU_Schedule_2010.serie, JOSTU_Schedule_2010.Resultat, JOSTU_Schedule_2010.Tid
FROM JOSTU_Schedule_2010
LEFT JOIN JOSTU_Teams
ON JOSTU_Teams.LagID = JOSTU_Schedule_2010.Lag1ID OR JOSTU_Teams.LagID = JOSTU_Schedule_2010.Lag2ID
WHERE JOSTU_Schedule_2010.serie = '$get_id' AND JOSTU_Schedule_2010.Resultat = ''
ORDER BY JOSTU_Schedule_2010.Datum ASC, JOSTU_Schedule_2010.Tid ASC LIMIT 0,10 ;",$link);}
?>


<table width="100%" cellspacing=1 cellpadding=2>
<tr bgcolor=#B9CEDB><th align=left colspan=3><font size="2"><B>Kommande matcher</B></tr>
<tr bgcolor=#B9CEDB align=center>
<td align=left width><B>Tid</B></td>
<td align=left><B>Match</B></td>
<td align=center><B>Omg</B></td>
</tr>


<?php
while($rad = mysql_fetch_row($result)) { $count++; echo "<tr onmouseover=style.backgroundColor='#FFFFCC'; onmouseout=style.backgroundColor='#F3F3F3';  class=info bgcolor=#F3F3F3><td>".$rad[0]. "<td><A HREF=index.php?list=info&id=".$rad[1]. ">".$rad[3].  "</A> - <A HREF=index.php?list=info&id=".$rad[2]. ">" .$rad[3].  "</A><td width=50 align=center>".$rad[4]. "</td></tr>";}
mysql_close($link);
?>
</table>

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Pröva med följande (och svaret är ja och nej, WHERE-satsen skall in i båda frågor, men ORDER BY lägger du enbart en gång sist av allt)

SELECT 
JS.Datum, JS.Lag1ID, JS.Lag2ID,JT.Klubb,JS.Omgång,JT.LagID,JS.serie,JS.Resultat,JS.Tid
FROM JOSTU_Schedule_2010 JS LEFT JOIN JOSTU_Teams JT
ON JT.LagID = JS.Lag1ID 
WHERE JS.serie = '$get_id' AND JS.Resultat = ''

UNION

SELECT 
JS.Datum, JS.Lag1ID, JS.Lag2ID,JT.Klubb,JS.Omgång,JT.LagID,JS.serie,JS.Resultat,JS.Tid
FROM JOSTU_Schedule_2010 JS LEFT JOIN JOSTU_Teams JT
ON JT.LagID = JS.Lag2ID 
WHERE JS.serie = '$get_id' AND JS.Resultat = ''

ORDER BY JS.Datum ASC, JS.Tid ASC LIMIT 0,10

Länk till kommentar
Dela på andra webbplatser

Aktuellspeedway.se

Lyckades inte få det att funka så heller, men efter mycket pill och hjärngympa så lyckades jag få ihop det såhär

 

 

<?php

if (isset($_GET["id"])){
$get_id = mysql_real_escape_string($_GET["id"]);
$result = mysql_query("SELECT JS.Datum, JS.Lag1ID, JT.Klubb, JS.Omgång, JT.LagID, JS.serie, JS.Resultat, JS.Tid 
FROM JOSTU_Schedule_2010 JS 
LEFT JOIN JOSTU_Teams JT 
ON JS.Lag1ID = JT.LagID
WHERE JS.serie = '$get_id' AND JS.Resultat = ''
ORDER BY JS.Datum ASC, JS.Tid ASC LIMIT 0,10 ;",$link);
$result2 = mysql_query("SELECT JS.Datum, JS.Lag2ID, JT.Klubb, JT.LagID, JS.Tid 
FROM JOSTU_Schedule_2010 JS 
LEFT JOIN JOSTU_Teams JT 
ON JS.Lag2ID = JT.LagID 
WHERE JS.serie = '$get_id' AND JS.Resultat = ''
ORDER BY JS.Datum ASC, JS.Tid ASC LIMIT 0,10;",$link);
}
?>


<table width="100%" cellspacing=1 cellpadding=2>
<tr bgcolor=#B9CEDB><th align=left colspan=3><font size="2"><B>Kommande matcher</B></tr>
<tr bgcolor=#B9CEDB align=center>
<td align=left width><B>Tid</B></td>
<td align=left><B>Match</B></td>
<td align=center><B>Omg</B></td>
</tr>


<?php
while($rad2 = mysql_fetch_row($result2))if($rad = mysql_fetch_row($result)) { $count++; echo "<tr onmouseover=style.backgroundColor='#FFFFCC'; onmouseout=style.backgroundColor='#F3F3F3';  class=info bgcolor=#F3F3F3><td>".$rad[0]. "<td><A HREF=index.php?list=info&id=".$rad[1]. ">".$rad[2].  "</A> - <A HREF=index.php?list=info&id=".$rad2[1]. ">" .$rad2[2].  "</A><td width=50 align=center>".$rad[3]. "</td></tr>";}
mysql_close($link);
?>
</table>

 

 

Duger det också, tack för hjälpen!

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...