SQL 连接命令

标签 sql sql-server

所以我正在尝试为两个表执行 SQL 连接命令,但得到的输出不是我想要的。

> SELECT        owners_table.ownerID, tenant_table.tenantID, tenant_table.apt_num, tenant_table.last_name, owners_table.last_name AS owner_last, tenant_table.phone, 
                         owners_table.phone AS owner_phone
FROM            owners_table INNER JOIN
                         tenant_table ON tenant_table.apt_status = 'ARCHIVED' AND owners_table.owner_status = 'ARCHIVED'
ORDER BY owners_table.apt_num"

在输出中,它显示了 5 条“stralman”记录,但只有一条。我知道 join 子句正在尝试匹配它,但是有没有办法只显示 5 个相应记录的 1 个 stralman?

http://i.stack.imgur.com/mfbWW.png

表结构: 1)租户表:http://i.stack.imgur.com/BUxMH.png
2)所有者表:http://i.stack.imgur.com/QqoKx.png

最佳答案

您没有在连接中的两个表之间建立关系。您的 ON 子句中至少需要一个条件,以便在条件的一侧有第一个表的表达式,在条件的另一侧有另一个表的表达式,如下所示:

FROM owners_table 
INNER JOIN tenant_table ON tenant_table.apt_num = owners_table.apt_num

请注意,这可能不是满足您需求的正确连接条件,因为我们无法从给定的信息中知道您可能需要哪些其他列来将所有者与租户相关联。

关于SQL 连接命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240038/

相关文章:

sql-server - 如何通过检查两个节点的值(包括需要进行包含(类似)比较的节点)来更新 sql server 中的 XML 列

sql-server - 我们如何更改 SSMS 中“将查询结果保存到文件”的默认设置

sql - 甲骨文: '= ANY()' 与 'IN ()'

java - 验证准备好的语句中的空字段

sql - 插入包含单引号和双引号的 HTML 字符串的查询

mysql - 在等于之前不等于的 SQL 性能,反之亦然

sql - 如何使用 SQL 实现以下结果集

sql - 在多个数据库中查找重复值

sql - 将多个列值作为逗号分隔值合并到一个列中

java - Hibernate-Criteria:在 'ON Clause' 中使用多个条件