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??
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
$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...
$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.
(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.