mysql - 使用基本连接进行多个值的 sql 查询

标签 mysql sql join

希望有人能提供帮助,我使用了搜索,但答案超出了我们所涵盖的范围。

我希望使用以下代码找到“在格拉斯哥或阿伯丁看管属性(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/

相关文章:

mysql - 无法解析从 MySQL 返回的 JSON

mysql - Laravel 5.7 - when() 函数内的高级 where() 查询

c# - Lambda 表达式 Sql 到 C# 日期时间

sql - postgresql 两个 NOT LIKE 子句返回错误结果

python - Pandas 加入问题 : columns overlap but no suffix specified

php - mysql根据不同的条件更新不同的列

php - 带有 lat lng 和多个搜索连接的 mysql 查询

sql - Always Encrypted 列的 EF Core 小数精度

MySQL:显示 3 个表中的所有行

sql-server - 将 JOIN 语句与 CONTAINS 函数一起使用