繁体   English   中英

Lambda表达式查询的MySQL查询

[英]Lambda expression query of MySQL query

我正在尝试针对父子关系表编写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         Name     FLag
1          A         0
 2          B         0
 3          C         1

ChildType:-

Id---------Name-----------------Parent_Type_Id-------Flag
1          GA                      1                   0
 2          GB                      1                   1
 3          GC                      2                   1
 4          GD                      2                   0
 5          GE                      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的数据。 OutputData:-

Id  Parent_Type_Id   Name    ChildName         Flag
1   1                 A         GA                0
4   2                 B         GD                0

Upper Query正在运行,并且输出正确。 谁能告诉我该查询如何在lambda表达式中完成。

请分享您的lamda表达式。...尝试此操作,可能对您有所帮助。

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

尝试这个 ....

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

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

将SQL子查询转换为In到Linq Lambda

如何将表达式树转换为部分SQL查询?

试试这个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
                };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM