我想使用下面的代码选择位置名称和水情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
答案 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