SQL结果不断重复

时间:2016-05-11 18:17:09

标签: mysql sql

我想使用下面的代码选择位置名称和水情ID:

SELECT location.loc_name, watercondition.id 
FROM `location`, `watercondition` 
WHERE location.loc_id & watercondition.id = 'LO001'

但结果打印:

 A | LO001 
 A | LO002
 A | LO003
 B | LO001
 B | LO001 
 B | LO002
 C | LO003

如何解决?我想要这样的结果:

A | LO001 
B | LO002
C | LO003

3 个答案:

答案 0 :(得分:2)

原因是您没有为所涉及的2个表指定join条件。这将导致交叉连接,这意味着一个表中的每一行都将与另一个表中的所有行连接。

所以你应该join表来获得理想的结果。

SELECT l.loc_name, w.id 
FROM `location` l
JOIN `watercondition` w ON l.loc_id = w.id --change this condition to be appropriate
WHERE l.loc_id= 'LO001'

答案 1 :(得分:1)

发布为社区维基。我已经没有从中获益。

使用

GROUP BY column

参考:

另外,请阅读DISTINCT

中也有语法错误
WHERE location.loc_id & watercondition.id

从技术上讲,您忘记了&或者只是使用了AND

咨询逻辑运营商:

然而这没有任何意义。

类似的东西:

WHERE location.loc_id = 'LO001' && watercondition.id = 'LO001'

答案 2 :(得分:-2)

试试这个:

SELECT location.loc_name, watercondition.id 
FROM `location`, `watercondition` 
WHERE location.loc_id & watercondition.id = 'LO001'
GROUP BY column