我有两张桌子

[使用者]
ID,用户名,年龄,城市...等



[teacherlook]
ID,用户ID,示教ID,数据

当老师从第一个表[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个随机用户,但第二个表中的教师查看的用户除外。

最佳答案

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

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

关于mysql - 如何从两个表中随机选择异常(exception)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45632910/

10-14 00:18