sql - 如何从两个表中选择并匹配 SQL 中的两列?

标签 sql

所以我要做的是从表 1 中选择具有特定项目编号的所有记录。然后我将加入另一个表并只获得一个名为“FloorId”的列,该列等于表 1 中的项目和元素。

(SELECT Project FROM dbo.IMP_MODEL_GEOMETRY WHERE dbo.IMP_GEOMETRY.Project = dbo.IMP_ELEMENT.Project AND dbo.IMP_GEOMETRY.Element = dbo.IMP_ELEMENT.Element)

在 dbo.IMP_GEOMETRY 表中,我将获得关于项目和元素的几个结果,所以也许我可以只选择第一个..不同?

这是我尝试过的:

$sql = "SELECT * FROM dbo.IMP_ELEMENT WHERE Project LIKE '%$objNr%'
            INNER JOIN dbo.IMP_MODEL_GEOMETRY ON dbo.IMP_ELEMENT.Project = dbo.IMP_MODEL_GEOMETRY.Project";

我是 SQL 新手,真的不知道“.”是什么。代表“dbo.IMP”。表名是:dbo.IMP_ELEMENT(我看到查询中点标记表,点后是列名。但在这种情况下,点不代表表和列,它只是表中的一个点姓名。

除了在 JOIN 中,Project 是列 (dbo.IMP_MODEL_GEOMETRY.Project)

我期望的表格看起来像:

id    Project    Element    FloorId

其中 FloorId 来自 table2。

编辑

两个表都包含“Project”和“Element” 所以,我可以用它们来匹配。在表 1 中,每个项目元素只有一行,但在表 2 中,项目元素可以有多行,因此从表 2 中可以只选择找到的第一个匹配项。

最佳答案

你可以试试下面的方法-

SELECT a.id,a.project,a.element,b.floorid FROM dbo.IMP_ELEMENT a
            INNER JOIN dbo.IMP_MODEL_GEOMETRY b ON a.Project = b.Project and a.element=b.element
WHERE a.Project LIKE '%$objNr%'

关于sql - 如何从两个表中选择并匹配 SQL 中的两列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57608219/

相关文章:

sql - MS SQL 的递归函数

php - 选择等效行

sql - Access 添加新行

php - html表中的多个foreach循环

sql - 日志触发器(更新前)- SQL Server

sql - 如何选择所有列但在一条语句中重命名其中的一些列?

sql - ORA-01791 : not a SELECTed expression PL SQL

php - 计数数据取决于句子id和数据频率

sql - Postgresql查询建议

Mysql 日期范围不返回正确的范围