如何在连接两个表时避免重复值?

时间:2014-12-27 10:14:23

标签: mysql sql select join left-join

我正在准备一份代码点火器框架工作的调查问卷。有时会显示一个问题进行回答。已回答的问题会被输入临时表。如果页面已刷新,已经回答了问题再次显示。为此我尝试加入临时表和主表,但它不工作。我使用了以下查询,

"SELECT a.boxes FROM quest a LEFT JOIN useranswer1 b ON  a.boxes!=b.question"

quest是主表,useranswer1是临时表。

结果包含主表(quest)中的所有值。我需要不在useranswer1(临时表)中的值。是否可以使用连接查询或任何其他方法?

2 个答案:

答案 0 :(得分:0)

您可以将子查询与NOT IN子句一起使用,如:

SELECT boxes 
FROM quest
WHERE boxes NOT IN 
              (SELECT DISTINCT question
               FROM useranswer1)

答案 1 :(得分:0)

试试这个:

SELECT a.boxes 
FROM quest a 
LEFT JOIN useranswer1 b ON  a.boxes = b.question
WHERE b.question IS NULL;

SELECT a.boxes 
FROM quest a 
WHERE NOT EXISTS (SELECT 1 
                  FROM useranswer1 b 
                  WHERE a.boxes = b.question);