webForumDet fria alternativet

Inkludera en fråga i en annan ....

Databaser & SQL

10 svar · 211 visningar · startad av UrMe

Medlem sedan apr. 2001762 inlägg
Frågan#1

Okej.. testade denna databas i Access innan jag gjorde den i mySQL.. så här ser första frågan ut:

$result = mysql_query(
"SELECT CS_STAT.id, SUM(plusminusstat) AS Total 
FROM CS_STAT 
GROUP BY CS_STAT.id");

den andra frågan ser ut så här:

$result2 = mysql_query(
"SELECT CS_SPELARE.namn, Total 
FROM $result INNER JOIN CS_SPELARE ON $result.id=CS_SPELARE.id 
ORDER BY Total DESC");

Men detta funkar ju inte.. alltså.. det funkar i Access.. men inte nu.. så nu undrar jag hur jag ska gå till väga.. hoppas ni förstår problemet.. annars får ni gärna fråga om nåt är oklart.

Medlem sedan dec. 200012 464 inlägg
#2

Du kan ju testa det här

$result2 = mysql_query(
"SELECT CS_SPELARE.namn, Total 
FROM (SELECT CS_STAT.id, SUM(plusminusstat) AS Total 
FROM CS_STAT 
GROUP BY CS_STAT.id") as result INNER JOIN CS_SPELARE ON result.id=CS_SPELARE.id 
ORDER BY Total DESC");

Jag har inte testat själv.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001762 inlägg
#3

Testade det där.. men jag ändrade lite för tror det stod fel..

$result2 = mysql_query(
"SELECT CS_SPELARE.Namn, Total 
FROM ("SELECT CS_STAT.id, SUM(plusminusstat) AS Total 
FROM CS_STAT 
GROUP BY CS_STAT.id") as CS_STAT INNER JOIN CS_SPELARE ON CS_STAT.id=CS_SPELARE.id 
ORDER BY Total DESC");

är det nu.. ändrade result till CS_STAT, för result var ju typ variabeln från första frågan.
Ska man ha " i andra select satsen? ..
om jag har det.. blir det parse error....
annars blir det

You have an error in your SQL syntax near 'SELECT CS_STAT.id, SUM(plusminusstat) AS Total FROM CS_STAT GROUP BY CS_STAT' at line 2

ett sådant fel...

---------------------------

Att ingenting kan funka direkt! :)

Medlem sedan dec. 200012 464 inlägg
#4

Jag kollade upp på Mysql och såg att dom inte har stöd för att ha selectsatser i from listan så min ide går inte alls. Får fundera lite till.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 200012 464 inlägg
#5

Kan du inte skriva ihop frågan på detta sätt


SELECT CS_SPELARE.NAMN, SUM(plusminusstat) AS Total
FROM CS_STAT INNER JOIN CS_SPELARE ON CS_STAT.ID = CS_SPELARE.id
GROUP BY CS_SPELARE.NAMN
ORDER BY Total DESC

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001762 inlägg
#6

Verkade inte heller att funka..
men jag fick

Parse error: parse error in /www/urme/ding/statspelare.php3 on line 67

ett sådant fel meddelande .. men rad 67 är sista raden i .php3 filen där står det </html>

Uscha.. kan man bli mer less..

Medlem sedan dec. 200012 464 inlägg
#7

Då verkar det som det saknas någon " i din kod. Kan du testa ut SQL-frågan separat först?

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001762 inlägg
#8

ååhhh.. har man suttit och slitit med INNER JOIN grejjen hur länge som helst.. sedan fick jag reda på att servern kör en äldre version än 3.23.16
Så jag frågade om de inte kunde installera nyare version. Men de sa att det inte är planerat att installera en nyare version nu. Om man installerar en nyare version av mySQL kan de påverka andra databaser som redan finns?.. jag har ett konto på cihost.com .. och det finns väl en 30 databaser på servern.

Medlem sedan dec. 200012 464 inlägg
#9

Så här då


SELECT CS_SPELARE.NAMN, 
SUM(plusminusstat) AS Total
FROM CS_STAT ,CS_SPELARE
where CS_STAT.ID = CS_SPELARE.id
GROUP BY CS_SPELARE.NAMN
ORDER BY Total DESC

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001762 inlägg
#10

testade den förut.. och det gick inge bra då...
men nu testade jag samma sak igen och nu funkar det :).. tror jag glömde ett "komma" första gången jag testade.
Fast visst gör denna typ en CROSS JOIN nu och tar bort alla alternativ som inte uppfyller WHERE satsen? .. det blir slöare än INNER JOIN? ..
Fast iofs så märks det nog ingen skillnad på denna lilla databas.

Tack för all hjälp!

Medlem sedan dec. 200012 464 inlägg
#11

Det skall inte vara någon prestandaskillnad om man använder sig av

select * from a inner join b on a.id = b.id

eller

select * from a,b
where a.id = b.id

------------------
essentitia preter non sans multiplicandum

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)