希望有人能提供帮助,我使用了搜索,但答案超出了我们所涵盖的范围。
我希望使用以下代码找到“在格拉斯哥或阿伯丁看管属性(property)的工作人员”:
SELECT s.fName, s.lName, propertyNo
FROM Staff s, PropertyForRent p
WHERE s.staffNo = p.staffNo
AND city = 'Glasgow' OR 'Aberdeen';
只返回 Glasgow ..我也尝试过并且没有返回任何内容。我对此完全陌生,所以我知道我缺少一些非常基本的东西。
最佳答案
SELECT s.fName, s.lName, propertyNo
FROM Staff s, PropertyForRent p
WHERE s.staffNo = p.staffNo
AND (city = 'Glasgow' OR city='Aberdeen');
这也可以改写为
SELECT s.fName, s.lName, propertyNo
FROM Staff s, PropertyForRent p
WHERE s.staffNo = p.staffNo
AND city in('Glasgow', 'Aberdeen');
但是,您应该使用适当的连接结构让优化器完成它的工作
SELECT s.fName, s.lName, propertyNo
FROM Staff s
INNER JOIN PropertyForRent p ON s.staffNo = p.staffNo
WHERE (city = 'Glasgow' OR city='Aberdeen');
关于mysql - 使用基本连接进行多个值的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883135/