【问题标题】:MySql query for showing records that have two or more same parameters用于显示具有两个或多个相同参数的记录的 MySql 查询
【发布时间】:2013-12-11 07:50:27
【问题描述】:

我有一张桌子:

#tabel barang
kdgudang  | kdbarang | stok |
g01         a01         12
g01         a02         25
g02         a01          5
g01         a03          7

我想要的只是显示具有kdgudang=g01g02kdbarang,所以结果是kdbarang a01
有人可以告诉我显示它的查询是什么吗?
我想要的查询是 not

SELECT * FROM barang WHERE kdbarang = 'a01'

但有些查询像

SELECT * FROM barang WHERE kdgudang = 'g01' and kdgudang = 'g02'
//it doesn't work, it returns zero result

【问题讨论】:

  • 你是什么意思“和”?是“g01、g02 中的任何一个”吗?
  • @Alma Do:不,它的意思是“和”。如果“任何……”我可以在查询中使用“或”
  • and代替or..
  • 那么应该返回哪些记录? IE。哪一列必须对您的记录进行分组,以便您能够检查这两个值是否出现在该组中?
  • @Alma Do : 我说过我期望的结果是a01kdgudang colomn 中有g01g02

标签: mysql


【解决方案1】:

这就是我所做的。它返回了我的预期:

Select distinct kdbarang from barang 
where kdgudang = 'g02' and kdbarang in (
SELECT distinct kdbarang FROM barang where kdgudang = 'g01'
)

如果你和我有同样的情况,可能会有所帮助

【讨论】:

    【解决方案2】:

    试试这个:

     SELECT * FROM barang WHERE (( kdgudang = 'g01' or kdgudang = 'g02') and kdbarang = 'a01');
    

    【讨论】:

    • 是的,它会为您提供 kdgudang 的“g01”或“go2”的结果
    • 你只想要 kdbarang ='a01' 吗?
    • 是的,我希望结果是“a01”。但不是您的查询,您的查询与“select * from barang where kdbarang = 'a01'”相同
    • 这是我所期待的:显示同时存在于仓库/kdgudang g01 和 g02 中的所有 kdbarang
    • SELECT * FROM barang WHERE ((kdgudang = 'g01' or kdgudang = 'g02') 那么这个查询就够了......有什么问题?......如果它对你不一样那么你的问题就不清楚了
    【解决方案3】:

    如果您尝试检索特定字段,请提及特定字段名称而不是 *(返回所有字段)。

    试试这个:

    SELECT kdbarang  FROM barang WHERE kdgudang = 'g01' or kdgudang = 'g02';
    

    【讨论】:

    • 也许我必须告诉你“事情”:D
    • 前缀kd 是kode,在英文中表示code。所以kdgudang是仓库代码(外键,仓库表的主键)。
    • 所以,故事是:我想显示仓库 g01 和 g02 中存在的所有 kdbarang
    • 上述解决方案将返回a01a03...是你要找的吗?
    • 是的,但a03 不存在于g02
    【解决方案4】:

    你也可以试试

    SELECT kdbarang  
    FROM barang 
    WHERE kdgudang in ('g01','g02')
    GROUP BY kdbarang 
    HAVING COUNT(DISTINCT kdbarang ) > 0
    

    先尝试一下,您应该会看到它们都添加了应该删除它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2019-10-07
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多