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没阅读 展开
这几条数据,我要得到的值是 (a,3)(b,1)(b,3)(c,1)(c,2)
就是person表是所有人,read是阅读记录,a信息1,2阅读了
我要的结果是a信息3没阅读 展开
1个回答
推荐于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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询