【发布时间】:2018-01-07 20:18:21
【问题描述】:
我有 2 个表 'userfoodcategory' 和 'MenuMaster'。
'userfoodcategory' 有 foodcategory 和 'MenuMaster' 有多个项目以及这个类别和一个列 'isnonveg'。
我想用 1 个附加列“isnonveg”查询“userfoodcategory”表数据,该列在“MenuMaster”表中。
我正在尝试下面的查询,但它给出了多余的记录
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
更多详情请看下面的屏幕截图。
我也希望这是一个 linq 查询,但首先我试图在 sql 中构建它,然后我需要在 linq 中转换它,因为我是 linq 的新手。 提前致谢。
【问题讨论】:
-
您能否添加一个您期望从查询中获得的数据和输出示例?您是否尝试过使用“and MM.isnonveg IS NULL”作为连接条件(放在“ON MM.categoryid = ufc.foodcategoryid”之后)而不是“where”?
-
感谢@JulienR,我只想在第二个屏幕截图中显示“isnonveg”列,并在第一个屏幕截图中显示数据。表示第一个屏幕截图数据,我需要添加列“isnonveg”,该列在“MenuMaster”表中。
-
抱歉,由于工作场所的限制,无法访问屏幕截图
-
好吧,既然你有很多不同的行,每个类别都是
MenuMaster,并且这一行的每一行在IsNonVeg表中可能有0或1,所以很自然有每个 Cateroty 的多个值。如果两个选项都存在,您希望在 select 语句中返回什么值? -
@ZoharPeled,没有每个类别 isnonveg 将只有 0 或 1。MenuMaster 中的 1 个类别不是两者。
标签: sql linq sql-server-2012 sql-server-2008-r2 sql-to-linq-conversion