learnMedlem sedan jan. 20051 130 inlägg Jag har två tabeller i en MySQL-databas. Nu vill jag plocka ut det senaste ur tabellerna. Det ska endast hämtas 1 post - den senaste! Hur gör jag detta i PHP??
Tabell1
----------
tabell1_ID
text
year
month
day
Tabell2
----------
tabell2_ID
text
year
month
day
aasahMedlem sedan mars 20034 471 inlägg Läs här och byt ut 3 mot 1.... :OO
LarsGMedlem sedan dec. 200012 464 inlägg select id,text,year,month,day
from
((select tabell1_id id,text,year,month,day
from tabell1
order by year desc, month desc, day desc
limit 1)
union all
(select tabell2_id,text,year,month,day
from tabell2
order by year desc, month desc, day desc
limit 1)) dt
order by year desc, month desc, day desc
limit 1
Varför har du två tabeller med identisk struktur?
learnMedlem sedan jan. 20051 130 inlägg Får det inte att fungera.. Antar at jag gör ngt slarvfel när jag skriver om det till riktig PHP. Kan du inte visa hur det ska se ut..?? Tack
LarsGMedlem sedan dec. 200012 464 inlägg Det är enklare om du postar det du har försökt med och även postar felmeddelande. Har du testat frågan separat?
learnMedlem sedan jan. 20051 130 inlägg Så här har jag skrivit (vill ta ut de 5 senaste):
$query = mysql_query("
select id,rubrik,year,month,day from
((select tbl1ID id,rubrik,year,month,day,time FROM tbl1 ORDER BY tbl1ID DESC LIMIT 5)
union all
(select tbl2ID id,rubrik,year,month,day,time FROM tbl2 ORDER BY tbl2ID DESC LIMIT 5))
dt order by id desc limit 5
");
$result = mysql_fetch_array($query);
Felmeddelande:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in...
LarsGMedlem sedan dec. 200012 464 inlägg $query = mysql_query("
select id,rubrik,year,month,day from
((select tbl1ID id,rubrik,year,month,day,time FROM tbl1 ORDER BY tbl1ID DESC LIMIT 5)
union all
(select tbl2ID id,rubrik,year,month,day,time FROM tbl2 ORDER BY tbl2ID DESC LIMIT 5))
dt order by id desc limit 5
") or die (mysql_error());
Vad blir det för resultat?
Frågan fungerar t.ex. inte i äldre versioner av Mysql.
LarsGMedlem sedan dec. 200012 464 inlägg Så här då?
(select tbl1ID id,rubrik,year,month,day,time FROM tbl1
ORDER BY tbl1ID DESC LIMIT 5)
union all
(select tbl2ID id,rubrik,year,month,day,time FROM tbl2
ORDER BY tbl2ID DESC LIMIT 5)
order by id desc limit 5
Jag skyller på att Mysql har klantat sig med avseende på syntaxen för union och derived tables.
learnMedlem sedan jan. 20051 130 inlägg Verkar fungera bra, tack!