【问题标题】:How to select rows which contains part of values from another list of rows?如何从另一个行列表中选择包含部分值的行?
【发布时间】:2014-09-03 06:26:17
【问题描述】:

它在 firebird + c# 应用程序中。 我有这样的表:

TableA:
        30RTabc1 someothervalue1 someothervalue2
        30RTabc2 someothervalue3 someothervalue4
        30RTabc1 someothervalue5 someothervalue6
        30RTabc4 someothervalue7 someothervalue8
        30RTabc1 someothervalue9 someothervalue10

TableB:
            abc1 someothervalue1 someothervalue2
            abc2 someothervalue3 someothervalue4
            abc3 someothervalue5 someothervalue6

所以在结果中,我将有联合 TableC,它将具有来自 TableA 的值,其中第一列包含来自 TableB 第一列的值,所以它看起来像这样:

加入TableA + TableB的结果,其中TableA的column1字符串包含来自column1 TableB的字符串:

TableC:
30RTabc1 someothervalue1 someothervalue2
30RTabc2 someothervalue3 someothervalue4
30RTabc1 someothervalue5 someothervalue6
30RTabc1 someothervalue9 someothervalue10

最好的方法是什么,在firebird中一些sql查询或在应用程序中,c# - 循环? (key为column1,其他值可以完全不同,someothervalue只是示例,都可以随机)

【问题讨论】:

    标签: c# sql firebird


    【解决方案1】:

    如果在 SQL 中很容易做到,我认为没有理由在 c# 中做到这一点,您将不得不获取大量数据然后丢弃它。

    至于如何在 SQL 中执行,取决于 '30RT' 部分是否可以更改:

    如果不是:

    SELECT t1.*
    FROM TableA t1
    INNER JOIN TableB t2
    ON t1.Key = '30RT'+t2.Key
    

    如果可以的话:

    SELECT t1.*
    FROM TableA t1
    INNER JOIN TableB t2
    ON t1.Key like '%'+t2.Key
    

    【讨论】:

    • 谢谢,我不知道join可以有like语句,我认为join只能基于“=”。我是 sql 和数据库的新手,再次感谢。
    • @user3762355 可以在WHERE 中使用的任何类型的条件都可以在ON 中使用(但并不是说它总是有意义)
    【解决方案2】:

    根据经验:将工作委派给专家。在这种情况下:让 Firebird 通过一个简单的 JOIN 来完成这项工作,因为她在表操作、组合、搜索等方面是专家。

    但是,如果这些表仍然在内存中,您可以考虑使用 LINQ 来连接这些表。

    【讨论】:

      【解决方案3】:

      从上面提到的细节我得到的是,你有一个带有键的表加入。如果您使用的是 DataSet,则可以使用

      添加表之间的关系
      DataRelation Relation=new DataRelation(DataCoulumn1,DataColumn2)
      DataSet.Relations.Add(Relation)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-10
        • 2015-01-10
        • 1970-01-01
        • 1970-01-01
        • 2016-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多