【问题标题】:SQL query to filter columns用于过滤列的 SQL 查询
【发布时间】:2022-01-20 04:45:33
【问题描述】:

我有一个关于 SQL 查询的问题。 我有这张表如下所示

Region Rep Item
Quebec Jones Pencil
Ontario Kivell Binder
Ontario Jardine Pencil
Ontario Gill Pen
Alberta Sorvino Pencil
Quebec Jones Binder
Ontario Andrews Pencil
Ontario Jardine Pencil
Alberta Thompson Pencil
Quebec Jones Binder
Ontario Morgan Pencil
Quebec Howard Binder
Alberta Sorvino Pen
Alberta Thompson Binder
Ontario Andrews Pencil
Ontario Jardine Binder
Ontario Jardine Binder
Ontario Andrews Binder

我必须过滤每个区域,然后是每个 Rep,最后是每个项目。 所以像一个表格的例子应该是这样的:

Region Rep Item
Quebec Jones Pencil

然后我必须返回并选择(过滤)其他项目,表格应如下所示:

Region Rep Item
Quebec Jones Binder
Quebec Jones Binder

复制这两个表格后,我必须返回 Rep 并选择另一个值,然后再次过滤 item column 以获取表格。 完成所有 Rep 和 Item 后,我必须返回并选择另一个区域并重复相同的步骤

如何通过查询来实现这一点?

【问题讨论】:

  • 请不要链接到您问题中的图片 - 将所有信息添加为可编辑文本。

标签: mysql sql database


【解决方案1】:

如果我正确理解了您的任务,您需要几个不同的查询(请将table_name 替换为您的):

SELECT * 
FROM `table_name` 
WHERE `Region` LIKE 'Quebec' 
    AND `Rep ` LIKE 'Jones' 
    AND `Item` LIKE 'Pencil'
SELECT * 
FROM `table_name` 
WHERE `Region` LIKE 'Quebec' 
    AND `Rep ` LIKE 'Jones' 
    AND `Item` LIKE 'Binder'

【讨论】:

  • 是的,这是我必须做的,但我必须为每个区域、每个代表和每个项目都这样做。所以它必须是动态的。
  • 所以,这应该是多个不同的查询。在这种情况下,您需要使用某种编程语言来选择列表并单独显示。或者那应该是一些复杂的 SQL 请求,带有循环和其他一些逻辑来显示结果。然而,在第二种情况下,我并不真正理解预期的结果——它应该是一个联合表还是其他什么。
  • 不,它们必须是分开的表。我怎样才能用一个列表来做到这一点?我应该如何使用列表将参数传递给查询?
  • 您有什么建议吗?
  • 查询的结果没有实际存在 - 一旦您运行一个查询(在同一个客户端/UI 中),前一个查询的结果就会丢失。因此,拥有多个查询的结果是没有意义的——如果这就是你要问的?或者您是否建议将每个查询的结果写入自己的表?请您澄清一下您要达到的最终结果是什么?
猜你喜欢
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多