开发者

SQL query, select from 2 tables random

Hello all i have a problem that i just CANT get to work like i what it..

i want to show news and reviews (2 tables) and i want to have random output and not the same output

here is my query i really hope some one ca开发者_如何学运维n explain me what i do wrong

SELECT
                anmeldelser.billed_sti ,
                anmeldelser.overskrift ,
                anmeldelser.indhold ,
                anmeldelser.id ,
                anmeldelser.godkendt
            FROM
                anmeldelser
            LIMIT 0,6
            UNION ALL
            SELECT
                nyheder.id ,
                nyheder.billed_sti ,
                nyheder.overskrift ,
                nyheder.indhold ,
                nyheder.godkendt
            FROM nyheder
            ORDER BY rand() LIMIT 0,6


First off it looks like the column order for the two SELECT statements don't match which they need to for a UNION.

What does the following return?

        SELECT
            anmeldelser.billed_sti ,
            anmeldelser.overskrift ,
            anmeldelser.indhold ,
            anmeldelser.id ,
            anmeldelser.godkendt
        FROM
            anmeldelser
        LIMIT 0,6
        UNION ALL
        SELECT
            nyheder.billed_sti ,
            nyheder.overskrift ,
            nyheder.indhold ,
            nyheder.id ,
            nyheder.godkendt
        FROM nyheder
        ORDER BY rand() LIMIT 0,6

(which RDBMS are you using? the SQL you have is not valid for Sybase but there may be techniques depending on the 'flavour' of SQL you are using)


Since RAND() appears only in the ORDER BY clause, would it not only be evaluated once for the whole query, and not once per row?


The problem is the first table is not selecting random elements

SELECT temp.* FROM
(
  SELECT
    anmeldelser.id ,
    anmeldelser.billed_sti ,
    anmeldelser.overskrift ,
    anmeldelser.indhold ,
    anmeldelser.godkendt,
    'News' as artType
  FROM anmeldelser
  UNION 
  SELECT
    nyheder.id ,
    nyheder.billed_sti ,
    nyheder.overskrift ,
    nyheder.indhold ,
    nyheder.godkendt,
    'Review' as artType
  FROM nyheder
 ) temp
 ORDER BY rand() LIMIT 0,6
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜