mysql请求逻辑


mysql requests logic

我有3张表和2个值

display.isUpload=2

userId=11(当前userId)

第一个

Table Ask
id INT
userId INT
qask VARCHAR

第二个

 Table Display
    id INT
    askId INT
    isUpload INT

第三个

Table Push
    id INT
    displayId INT
    userId INT

逻辑询问显示为询问列表,当用户选择其中一个时,它将记录到推送表中。现在,我需要显示ask的所有记录,但不显示用户添加到推送的记录(我不知道如何在我当前的请求中做到这一点),并显示.isUploaded=2和ask.userId not in 11。(我无法从ask中删除记录)我当前的sql请求

                  SELECT
  a.id as id,
  a.qask as qask
  FROM Ask AS a
  JOIN Display AS d ON d.askId = a.id
  WHERE d.isUploaded = 2 AND
   a.userId  NOT IN (11)

你的意思是你想要这个吗(我添加了最后一行):

SELECT
  a.id as id,
  a.qask as qask
  FROM Ask AS a
  JOIN Display AS d ON d.askId = a.id
  WHERE d.isUploaded = 2 AND
   a.userId  NOT IN (11)
  AND a.userId NOT IN ( SELECT id from Push)

您的问题不清楚,根据我的理解,我写了这个查询

SELECT
a.id AS id,
a.qask AS qask
FROM Ask AS a
LEFT JOIN Display AS d ON d.askId = a.id
LEFT JOIN Push AS p ON p.displayId = d.id
WHERE d.isUploaded = 2 
AND p.id=NULL
AND a.userId <>11