内连接查询错误

时间:2015-02-04 07:09:19

标签: sql-server

SELECT Product.prodName, Runs.buildNumber, Runs.prodDate
FROM Product
INNER JOIN Runs on prodId where Runs.runId=118

以上是我对架构的查询: [请参考评论。我不会在这里发布图片]

它给出了一个错误:在期望条件的上下文中指定的非布尔类型的表达式

4 个答案:

答案 0 :(得分:0)

您的语法错误:

on条件必须是布尔条件。

SELECT Product.prodName, Runs.buildNumber, Runs.prodDate
FROM Product
INNER JOIN Runs on prodId=... where Runs.runId=118

所以它必须是<column from Product> = <column from Runs>

答案 1 :(得分:0)

您的查询需要像这样

SELECT Product.prodName, Runs.buildNumber, Runs.prodDate
FROM Product 
INNER JOIN Runs r on p.prodId=r.prodId where Runs.runId=118

答案 2 :(得分:0)

有小语法错误

内部连接语法

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name where condition;

按如下方式更新您的查询

SELECT Product.prodName, Runs.buildNumber, Runs.prodDate
FROM Product
INNER JOIN Runs on Product.columnname=Runs.columnname where Runs.runId=118

只需转到this链接即可获得干净整洁的连接示例

答案 3 :(得分:0)

来自Itzik Ben-Gan的书Microsoft SQL Server 2012 T-SQL Fundamentals

  

INNER JOIN在交叉连接中在两个输入表之间应用笛卡尔积,然后根据您指定的谓词过滤行。

根据以上描述,它必须是ON之后的谓词表达式,例如Product.prodId=Runs.prodId