Mysql SQL结果不断重复
我想使用下面的代码选择位置名称和水条件ID:Mysql SQL结果不断重复,mysql,sql,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 如何修复
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
作为社区维基发布。我从中得不到任何好处 使用 参考:
WHERE location.loc_id & watercondition.id
从技术上讲,您忘记了和,或者可能只是使用了和
请咨询逻辑运算符:
但这没有任何意义
比如:
WHERE location.loc_id = 'LO001' && watercondition.id = 'LO001'
试试这个:
SELECT location.loc_name, watercondition.id
FROM `location`, `watercondition`
WHERE location.loc_id & watercondition.id = 'LO001'
GROUP BY column
原因是您没有为涉及的两个表指定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'
我倾向于相信这是解决方案/更好的答案。我可能会离开我的网站,但它是一个“维基”。我可能会删除这个。然而,这是一篇社区维基文章,因此任何人都可以进行更正。顺便说一句,这样发布时没有获得代表分数,所以请随意编辑。顺便说一句,这个WHERE location.loc\u id&watercondition.id='LO001'
在技术上是不正确的,原因有几个。检查上面的错误会发出信号。
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'