我正在使用2012和SS Management以及一般的数据库,但这是非常新的。尽管有很多时间和研究,但我无法通过特定的存储过程完全实现我的目标,没有一些建议我就无法继续前进。
我想从三个相关的表A、B和C中检索数据。我希望拥有TableA中的所有行,而只有表TableB和TableC中的相关行(如果它们存在的话)。
我在上找到了StackOverflow,这是与我的问题最匹配的,我已经尝试过了,但没有成功。代码片段如下:
SELECT A.*
FROM
(TableA A LEFT JOIN TableB B ON A.id = B.a_id)
LEFT JOIN TableC C
我有两个表,其中两个表中的一个列/字段是相同的,我需要用表B中的数据更新表A。在这里,表A.x值需要与B.w值进行比较,等效的B.z值需要在A.x中更新。X值不同于x1、x2等。因此,每个值都需要与表B中的w进行比较,而表A中的等效z值需要在x、x1、x2等中更新。
Table A (columns j, x, x1,x2,x3..x20 and so on)
---------
j x x1 x2 ..x20 and y y1 y2 .. y20
Table B (columns w and z)
--------
w z
UPDATE TableA a SET a.x
我不知道怎么写标题,但在过去的两天里,我一直在尝试写一个查询,这让我很沮丧。请看我的桌子结构如下:
----------------------
| TABLE A |
----------------------
| FIELD 1 | FIELD 2 |
----------------------
| X | A |
| X | B |
| Y | C |
| Y | D |
| Y | E |
| Z | F
我有两张表,第一张包含了类别、菜单项和我在一家商店里的销售量。所以,例如
Table A
CATEGORY X MENU X QUANTITY
Chicken x ChickenStew x 7
Beef x Stew x 10
Fish x FishStew x 8
Chicken X Chicken Stew x 5
Fish X Fish Stew x 2
我有第二张表格,它定义了每个菜单项的材料清单,如下所示
table B
MENU X BILL_OF_MATERIAL
C
我可以用一个查询更新两个相同的表吗?
TABLEA
_____________________________
| id | value |
|_____________|_____________|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | e |
|_____________|__________
如何在LINQ中编写以下查询。
select
a.IntId, Max(b.CreateDate), Max(a.TwoID)
from
TableA a
join
TableB b on a.IntId = b.IntId
group by
IntId
我现在有这个,但它不能工作:
var res = DbContext.TableA
.Include(c => c.TableB)
.Select(p => new { CreateDate = p.Table
我在更新中使用子查询:
UPDATE tableA
SET x,y,z = ( (SELECT x, y, z
FROM tableB b
WHERE tableA.id = b.id
AND (tableA.x != b.x
OR tableA.y != b.y
OR tableA.z != b.z))) );
我的问题是,如果子查询没有返回任何行,会发生什么?它会使用null值进行更新吗?
其次,有没有更好
我正在为三张表而挣扎,我试图加入并排除某些结果。基本上它与几乎相同,但是我仍然不知道如何成功地组合多个表。
目标是从表A中选择结果,其中中间表B中的行为空或,其中表C(链接到B,但不与A)不匹配特定值。
类似于:
SELECT x
FROM tablea
LEFT JOIN tableb
ON tablea.x = tableb.x
LEFT JOIN tablec
ON tableb.y = tablec.y
WHERE tableb.x IS NULL
OR tablec.z != '