sql 语法本人很菜..多表查询有时候搞的我头晕晕....有时候异想天开的想要是sql语句像c#代码一样好写就好了.可能我是没有掌握方法.
因为rand() 效率实在不敢恭维...所以必须加 where 加以限制.
废话少说.上问题...======== 问题 =========表一 : 栏目表.存放栏目id
表二 : 文章表.1 : 结果1 = 先Rand() 出 '表一' 的 一个id
2 : 在根据 结果1 的值 随机 Rand() '表二' 的文章SELECT * FROM '表二' WHERE classid = '结果1' RAND() limit 1

解决方案 »

  1.   

    SELECT * FROM '表二' WHERE ID= RAND() limit 1你直接在表二中随机取,概率是一样的。没必要先到表1中取了。
      

  2.   


    不能在表二中随机取.因为表二数据有50w..如果而 表一的数据 才几十条这个表关联这么做??我1 : 结果1 = 先Rand() 出 '表一' 的 一个栏目id  <<忘记说明.sorry
      

  3.   

    我的意思是这样的....但是不知道这么正确写出来....SELECT * FROM '表二' WHERE ID = (SELECT classid FROM '表二' RAND() limit 1) RAND() limit 1
      

  4.   


    写错了.没有办法用小号过来跟正SELECT * FROM '表一' WHERE classid = (SELECT classid FROM '表二' RAND() limit 1) RAND() limit 1
      

  5.   

    SELECT * FROM '表二','表一' 
    WHERE 表一.id=表二.id and 表二.classid = '结果1' RAND() limit 1