表中的SQL语句

表中的SQL语句,sql,sql-server,select,join,sql-like,Sql,Sql Server,Select,Join,Sql Like,我想做的是在表中有一个SQL连接。 下面是它的外观: 饼台 蛋糕桌 这就是两个表的外观,我想做的是能够选择cake表,其中data=70,让它返回cake表的第1行,并返回pie表的第1行和第2行 我并不在乎它是否将它们作为单独的表、行、联接或列返回 我真正想要的是能够向数据库请求data=8,并能够从饼图中返回1、2和3。如果你有什么建议的话,我真的不在乎它是怎么工作的 因此,我希望能够查询蛋糕并获得动态数量的馅饼。如果您能想出一些方法,甚至表也会改变。看起来您需要更新数据库设计 我将从蛋糕表

我想做的是在表中有一个SQL连接。 下面是它的外观:

饼台 蛋糕桌 这就是两个表的外观,我想做的是能够选择cake表,其中
data=70
,让它返回cake表的第1行,并返回pie表的第1行和第2行

我并不在乎它是否将它们作为单独的表、行、联接或列返回

我真正想要的是能够向数据库请求
data=8
,并能够从饼图中返回
1
2
3
。如果你有什么建议的话,我真的不在乎它是怎么工作的


因此,我希望能够查询蛋糕并获得动态数量的馅饼。如果您能想出一些方法,甚至表也会改变。

看起来您需要更新数据库设计

我将从蛋糕表中删除pieId,并创建一个关系表。让我们称之为CakePies with Id,PieId,CakeId。只需将关系添加到该表中

问题是

    Select * 
from Cake c
Inner join CakePies cp on c.Id = cp.CakeId
inner join Pies p on p.Id = cp.PieId
where Data = 70 -- or whatever filter you want
更新 您的CakePies表应如下所示:

CakeID   PieId
1        1
1        2
2        2
3        1
3        2
3        3

看起来您需要更新数据库设计

我将从蛋糕表中删除pieId,并创建一个关系表。让我们称之为CakePies with Id,PieId,CakeId。只需将关系添加到该表中

问题是

    Select * 
from Cake c
Inner join CakePies cp on c.Id = cp.CakeId
inner join Pies p on p.Id = cp.PieId
where Data = 70 -- or whatever filter you want
更新 您的CakePies表应如下所示:

CakeID   PieId
1        1
1        2
2        2
3        1
3        2
3        3

请看fnSplitString的示例:

从那里开始,尝试:

SELECT c.id, c.data, (SELECT message FROM pie WHERE pieid IN (SELECT * FROM fnSplitString(c.pieid, '@') ) AS 'message'
FROM cake c
WHERE c.data = 8
这有点愚蠢-您最好为pieid列设置一个关系结构:例如:

cake table
Id      data     pieId
1       70       1
1       70       2
...

请看fnSplitString的示例:

从那里开始,尝试:

SELECT c.id, c.data, (SELECT message FROM pie WHERE pieid IN (SELECT * FROM fnSplitString(c.pieid, '@') ) AS 'message'
FROM cake c
WHERE c.data = 8
这有点愚蠢-您最好为pieid列设置一个关系结构:例如:

cake table
Id      data     pieId
1       70       1
1       70       2
...
试试这个:

SELECT c.Id, c.data, p.Id, p.type, p.message
FROM cake c 
INNER JOIN pie p ON '@' + c.pieId + '@' LIKE '%@' + p.Id + '@%'
WHERE c.data = 70
试试这个:

SELECT c.Id, c.data, p.Id, p.type, p.message
FROM cake c 
INNER JOIN pie p ON '@' + c.pieId + '@' LIKE '%@' + p.Id + '@%'
WHERE c.data = 70

您尝试过什么SQL?为什么结果对您不满意?如果您还没有尝试过任何SQL—为什么不尝试在谷歌上搜索连接,看看能找到什么—然后尝试一下…:)您尝试过什么SQL?为什么结果对您不满意?如果您还没有尝试过任何SQL—为什么不尝试在谷歌上搜索连接,看看能找到什么—然后尝试一下…:)直到你发了这封感谢信,我才明白什么是关系表。直到你发了这封感谢信,我才明白什么是关系表