mysql问题:取另一个表中不存在的数据

mysql问题:一个person表里面有personid字段,还有一个read表,里面有readid和personid两个字段,比如person里有1,2,3两个值,re... mysql问题:一个person表里面有personid字段,还有一个read表,里面有readid和personid两个字段,比如person里有 1,2,3两个值,read里有 (a,1)(a,2)(b,2)(c,3)
这几条数据,我要得到的值是 (a,3)(b,1)(b,3)(c,1)(c,2)
就是person表是所有人,read是阅读记录,a信息1,2阅读了
我要的结果是a信息3没阅读
展开
 我来答
匿名用户
推荐于2016-01-05
展开全部
CREATE TABLE person( personid  INT);
INSERT INTO person VALUES(1);
INSERT INTO person VALUES(2);
INSERT INTO person VALUES(3);



CREATE TABLE `read`( readid  char(1),  personid  INT);
INSERT INTO `read` VALUES ('a',1);
INSERT INTO `read` VALUES ('a',2);
INSERT INTO `read` VALUES ('b',2);
INSERT INTO `read` VALUES ('c',3);



SELECT
  allData.*
FROM
(
SELECT
  DISTINCT
  person.personid,
  `read`.readid
FROM
  person  cross JOIN  `read`
)  allData  
  LEFT  JOIN  `read`  R   
  ON  (allData.personid =  R.personid  AND  allData.readid =  R.readid)
WHERE
  R.personid  IS  NULL;
  

+----------+--------+
| personid | readid |
+----------+--------+
|        3 | a      |
|        1 | b      |
|        3 | b      |
|        1 | c      |
|        2 | c      |
+----------+--------+
5 rows in set (0.00 sec)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式