1

所以我有一个“项目”列表的查询,比如“苹果”、“胡萝卜”和“梨”,旁边有一个名为“数量”的字段。在另一张表上,我有一列带有一个名为“Item”的字段,然后在它旁边有一个带有“cost”的字段。(从而显示该项目及其成本。)我想要做的是在列表中搜索该项目,然后将该项目和价格乘以数量,并将其显示在图表上。

我们还假设在项目表中某些拼写不准确,因此一个人可能输入了 apple 和另一个 apples,但在我的项目列中它只显示 Apple,我如何确保他们会找到彼此或列表中最接近的匹配项?

我做了一些工作,我假设我必须创建某种连接,但我不确定用于配对的表达式或项目的价格一旦完成,可以完成一个简单的乘法表达式。

4

1 回答 1

0

您是对的,您需要在两个表/查询之间执行 JOIN 以匹配彼此对应的行(可以说是“苹果到苹果”)。如果您的第一个表/查询被称为 [Orders] 而您的第二个表/查询被称为 [Prices] 那么“做数学”的简单查询将类似于

SELECT 
    Orders.Item, 
    Orders.Quantity, 
    Prices.Price,
    Orders.Quantity * Prices.Price AS Cost
FROM
    Orders
    INNER JOIN
    Prices
        ON Orders.Item = Prices.Item

关于你的观点...

让我们还假设在项目表中某些拼写不准确,因此一个人可能输入了 apple 和另一个 apples,但在我的项目列中它只是说 Apple,我如何确保他们会找到彼此

...简短的回答是:您以不会发生此类差异的方式设计数据库。使用您最喜欢的互联网搜索引擎对以下主题进行一些研究:

  1. 数据验证
  2. 参照完整性

编辑回复:评论

我只是想知道是否可以使用带有某种 % 符号的 Like 函数来搜索最接近的答案来解决 [matching] 问题

一般来说,没有。这些类型的方法可能很难可靠地实现(想想“apples”与“pineapples”),如果发生不正确的匹配,也很难审计。

如果您有脏数据,那么您很可能只需要忙起来清理它。

于 2013-10-18T20:38:06.613 回答