SELECT Product.prodName, Runs.buildNumber, Runs.prodDate
FROM Product
INNER JOIN Runs on prodId where Runs.runId=118
以上是我对架构的查询: [请参考评论。我不会在这里发布图片]
它给出了一个错误:在期望条件的上下文中指定的非布尔类型的表达式
答案 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