选择一个具有不同记录的表列,其他表包含所有数据

时间:2017-08-01 05:45:19

标签: sql linq sql-server-2012 sql-server-2008-r2 sql-to-linq-conversion

我有2个表' userfoodcategory'和' MenuMaster'。

' userfoodcategory'有食物类别和菜单主持人'有多个项目以及此类别,其中包含列' isnonveg'。

我想查询“userfoodcategory”'表格数据包含1个添加列' isnonveg',此列位于“菜单管理器”列表中。表。

我正在尝试下面的查询,但它提供了冗余记录

 SELECT DISTINCT ufc.*, MM.isnonveg
FROM   MenuMaster MM
LEFT JOIN  userfoodcategory ufc  ON MM.categoryid = ufc.foodcategoryid
WHERE  ufc.USERID = 19 --and MM.isnonveg IS NULL
order by ufc.foodcategoryid

有关详细信息,请查看以下屏幕截图。

enter image description here

enter image description here

此外,我想将此作为linq查询,但首先我尝试在sql中构建它,之后我需要在linq中将其转换为linq中的新功能。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下查询:

SELECT DISTINCT ufc.*, MM.isnonveg
FROM  (select distinct categoryid,isnonveg FROM MenuMaster) MM
LEFT JOIN  userfoodcategory ufc  ON MM.categoryid = ufc.foodcategoryid
WHERE  ufc.USERID = 19 --and MM.isnonveg IS NULL
order by ufc.foodcategoryid