所以我要做的是从表 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/