【问题标题】:Sql query creation for combines two tables and shuffling results用于组合两个表和混洗结果的 Sql 查询创建
【发布时间】:2012-06-27 02:46:15
【问题描述】:

我想创建一个 SQL 查询来选择 我数据库中的女性照片然后随机选择男性照片而不是随机选择男性照片。例如,有 40 张女孩的照片和 60 张男孩的照片。我希望选择第 40 张女孩的照片(打乱,然后选择剩余的男孩照片(打乱)

希望我很清楚。我有两个表,“userID”字段是链接两个表的字段。

用户表(年龄、用户ID、性别)|图片表(用户ID, 点赞数,图片位置)

无论如何我可以生成这个查询吗?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    SELECT picure_location
    FROM Picture
      INNER JOIN User ON Picture.UserID=User.UserID
    ORDER BY gender,RAND()
    

    您可能需要ORDER BY GENDER DESC, RAND(),具体取决于您代表性别的方式。

    【讨论】:

      【解决方案2】:

      请尝试以下方法:

      SET @num1=0, @num2=0;
      SELECT t1.*, p1.picturelocation,t2.*, p2.picturelocation 
      FROM (
          SELECT UserID,gender, @num1:=@num1+1 AS num
          FROM UserTable WHERE gender='Female'
      ) AS t1
      INNER JOIN (
          SELECT UserID,gender, @num2:=@num2+1 AS num
          FROM (
              SELECT *
              FROM UserTable WHERE gender='Male'
              ORDER BY RAND()
              LIMIT 40
          ) AS t
      ) AS t2
      ON t1.num = t2.num 
      INNER JOIN PictureTable p1 on t1.userid=p1.userid 
      INNER JOIN PictureTable p2 on t2.userid=p2.userid;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-02
        • 1970-01-01
        • 1970-01-01
        • 2016-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多