【问题标题】:How to do random select from two tables with the exception?除了例外,如何从两个表中随机选择?
【发布时间】:2017-08-11 10:25:49
【问题描述】:

我有两张桌子

[用户] id、用户名、年龄、sity ....等

[teacherlook] id、userid、teachid、数据

当老师从第一个表 [users] 中查找用户时,他将值插入到第二个表中

NULL, userid (它是第一个表的 id 值),teacherid (它是 unic 教师的 id - 可以是 1,2,3 ... 10),以及 unix 中的时间

完成了,可以了,

脚本第二部分的问题:

教师应该看到 10 个他尚未测试的随机用户 - 那些尚未在第二个表中的用户。

我试试

SELECT * 
  FROM users 
  JOIN teacherlook 
 WHERE users.age>18 
   AND (users.id<>teacherlook.userid AND teacherlook.teachid<>$teacherid)     
 LIMIT 0,10 

然后得到一个空白问题。请帮助提出正确的请求,从第一个表中随机选择 10 个用户,第二个表中教师查看的用户除外。

【问题讨论】:

    标签: mysql select random


    【解决方案1】:

    LEFT JOIN 是您所需要的。它将返回 LHS 表中不存在于 RHS 表中的所有行。

    SELECT *
    FROM users
    LEFT JOIN teacherlook
    ON users.id = teacherlook.userid 
       AND teacherlook.teachid = $teacherid
       AND users.age > 18
    WHERE teacherlook.id IS NULL
    ORDER BY RAND()
    LIMIT 0,10
    

    【讨论】:

    • 请接受我的回答,这将有助于将来遇到类似问题的人:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2019-03-15
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多