首页 > 解决方案 > 如何从 SQL Server Compact 数据库中获取不同的记录

问题描述

如何使用 SQL Server Compact 从多个表中获取唯一记录?

我试过这个 SQL 语句:

SELECT Tbl_Customer.Name, Tbl_Room.Room_Number
FROM Tbl_Customer 
INNER JOIN Tbl_Room ON Tbl_Customer.Customer_number = Tbl_Room.Customer_Number 
WHERE Tbl_Customer.Customer_number IN (SELECT DISTINCT Tbl_Customer.Customer_number 
                                       FROM Tbl_Customer)

标签: sqlsql-serversql-server-ce

解决方案


我不明白为什么会有这个 WHERE 语句。您正在尝试从 Tbl_Customer 获取 Customer_number 存在于同一表 - Tbl_Customer 中的记录。没有这个条件,你可以使用

SELECT c.Name, r.Room_Number
FROM Tbl_Customer c
INNER JOIN Tbl_Room r ON c.Customer_number = r.Customer_Number 
GROUP BY c.Name, r.Room_Number

我希望它有所帮助。

编辑:在这种情况下 SELECT DISTINCT 应​​该给出相同的结果,甚至生成完全相同的查询执行计划。


推荐阅读