努力编写一个视图,在其中填充表中的下拉框。

下拉列表将仅显示尚未创建的项目。就我而言,其领域属于农场成本计划。

$

CREATE VIEW [dbo].[cmbPopulateFieldsnotcosted]
    AS SELECT
    fieldID,
    fieldName,
    fieldLocation,
    fieldSize,
    fieldHistory
    FROM [fieldDetails]
    where fieldDetails.fieldID not in fieldCosts.fieldID
    inner join fieldCosts.fieldID = fieldDetails.fieldID


$

enter image description here
enter image description here

两张图片显示了我遇到的错误。

任何帮助,将不胜感激。

另外,为了提供更多信息,当我已经有一个已添加成本的字段时,我不希望能够为此添加更多成本。宁可只是更新它,因此想编写此视图以允许我执行此操作。

最佳答案

如果使用in子句,则应提供and数组(或子选择结果)

但是在您的情况下,您正在使用联接,因此您应该使用!=

  CREATE VIEW [dbo].[cmbPopulateFieldsnotcosted]
      AS SELECT
      fieldID,
      fieldName,
      fieldLocation,
      fieldSize,
      fieldHistory
      FROM [fieldDetails]
      where fieldDetails.fieldID !=  fieldCosts.fieldID
      inner join fieldCosts.fieldID = fieldDetails.fieldID


(因为在这种情况下,集合是由联接而不是in子句管理的)

无论如何,您正在使用带有不正确的方括号[]或mysql ..的表示法(似乎是sqlServer)

10-08 11:09