1

親子関係テーブルに関してMySQLクエリのラムダ式を書き込もうとしていますが、データに関して適切な出力が得られなかったので、どのように書くか教えてもらえますか?

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 A 0
 2 B 0
 3 C 1

ChildType:-

Id---------名前-----------------Parent_Type_Id-------フラグ
 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

上位クエリが実行されており、出力は適切に提供されています。このクエリがラムダ式でどのように実行されるかを誰かに教えてもらえますか?

4

3 に答える 3

0

Plz share ur lamda expression ....これを試してみてください、これはあなたの助けになるかもしれません。

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

于 2012-12-05T05:06:26.577 に答える
0

これを試して ....

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);

それでも問題が発生する場合は、こちらをご覧ください...

SQLサブクエリをInからLinqLambdaに変換します

式ツリーを部分的なSQLクエリに変換するにはどうすればよいですか?

于 2012-12-05T05:09:29.293 に答える
0

この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
                };
于 2013-04-16T12:52:58.980 に答える