我正在尝试编写关于父子关系表的 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);
虚拟数据:- 父类型-
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 Query:-
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 Name ChildName Flag
1 1 A GA 0 4 2 B GD 0
上层查询正在运行并且输出正确。谁能告诉我这个查询将如何在 lambda 表达式中完成。
最佳答案
试试这个....
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);
如果仍然遇到一些问题,请参阅此...
关于mysql - MySQL查询之Lambda表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13703796/