【问题标题】:Lambda expression query of MySQL queryMySQL查询的Lambda表达式查询
【发布时间】:2012-12-04 13:13:34
【问题描述】:

我正在尝试编写关于父子关系表的 MySQL 查询的 lambda 表达式,但我没有得到关于数据的正确输出,所以任何人都可以告诉我我们将如何编写它。

Parent_Type(Parent Table) :-  
CREATE  TABLE `Parent_Type` (
  `ID` INT NOT NULL AUTO_INCREMENT ,
  `NAME` VARCHAR(255) NULL ,
  `FLAG` decimal(1,0) DEFAULT NULL,
  PRIMARY KEY (`ID`) );

Child_Type(子表):-

CREATE  TABLE `Child_Type` (
  `ID` INT NOT NULL AUTO_INCREMENT ,
  `NAME` VARCHAR(255) NULL ,
  `Parent_TYPE_ID` INT NULL,
  `FLAG` decimal(1,0) DEFAULT NULL,
  PRIMARY KEY (`ID`),INDEX `fk_Child_Type_1` (`PARENT_TYPE_ID` ASC),
  CONSTRAINT `fk_Child_Type_1`
    FOREIGN KEY (`PARENT_TYPE_ID` )
    REFERENCES `parent_type` (`ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

虚拟数据:- ParentType-

ID名称标志 1 一个 0 2 乙 0 3 C 1

子类型:-

Id---------Name-----------------Parent_Type_Id--------Flag 1 GA 1 0 2 GB 1 1 3 GC 2 1 4 广东 2 0 5 通用电气 3 0

MySQL 查询:-

SELECT * from parent_type p left outer join child_type c
on p.ID = c.PARENT_TYPE_ID where p.flag=0 AND c.flag=0;

所以,我需要两个表中都有 flag=0 的数据。 输出数据:-

Id Parent_Type_Id 名称 ChildName 标志 1 1 GA 0 4 2 乙 GD 0

上层查询正在运行并且输出正确。谁能告诉我这个查询将如何在 lambda 表达式中完成。

【问题讨论】:

  • Parent_Type_Id 是 Child_Type 中的外键。

标签: mysql c#-4.0 lambda


【解决方案1】:

试试这个....

var lambdaExpression = ParentType.Where(c => c.Flag == 0) .Join(ChildType.Where(uc => uc.Flag == 0), c => new { c.Name, c.ID }, uc => new { uc.Name, uc.ID }, (c, uc) => c);

如果仍然遇到一些问题,请参阅此...

Convert SQL Sub Query to In to Linq Lambda

How to convert an expression tree to a partial SQL query?

【讨论】:

    【解决方案2】:

    请分享你的 lamda 表达式.... 试试这个,可能对你有帮助。

    IList parentList=parent_type.Where(x=>x.FLAG==0 && (x=>x.child_type.where(t=>t.FLAG==0).Count>0)).ToList() ;

    【讨论】:

      【解决方案3】:

      试试这个 Linq,它可能对你有帮助

      var linqQuery= from pa in parent_list where pa.Flag==0
                     select ch in pa.child_type_list where ch.Flag==0
                     select new 
                     { 
                       id=ch.id, 
                       Parent_Type_Id=ch.Parent_Type_Id.ID,
                       Name=ch.Parent_Type_Id.Name,    
                       ChildName=ch.Name,
                       Flag=ch.Flag
                      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多