努力编写一个视图,在其中填充表中的下拉框。
下拉列表将仅显示尚未创建的项目。就我而言,其领域属于农场成本计划。$
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)