Mysql SQL查询组合搜索
我必须找到存储在数据库中的数据组合,以使用sql填充输入值 第一桌Mysql SQL查询组合搜索,mysql,sql,Mysql,Sql,我必须找到存储在数据库中的数据组合,以使用sql填充输入值 第一桌 ID| Value | 1 | 8 | 2 | 10 | 3 | 12 | 4 | 14 | 表值 ID| Value | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 5 | 5 | 6 | 如果输入值是8,我必须在表中找到与之相等的值的可能组成 可能性: ID, 1 and 5 ID, 3 and 3 ID, 2 and 4
ID| Value |
1 | 8 |
2 | 10 |
3 | 12 |
4 | 14 |
表值
ID| Value |
1 | 2 |
2 | 3 |
3 | 4 |
4 | 5 |
5 | 6 |
如果输入值是8,我必须在表中找到与之相等的值的可能组成
可能性:
ID, 1 and 5
ID, 3 and 3
ID, 2 and 4
如何从sql查询中获取此信息 如果您正在寻找配对,则可以使用以下条件进行联接:
select t1.Value, t2.Value
from table t1 join
table t2
on t1.Value + t2.Value = 8;
编辑:
如果您确实想要得到1和5,而不是5和1,那么您需要在on
子句中使用distinct和另一个条件:
select distinct t1.Value, t2.Value
from table t1 join
table t2
on t1.Value + t2.Value = 8 and
t1.Id <= t2.Id;
选择不同的t1.值,t2.值
从表t1连接
表t2
在t1.值+t2.值=8和
t1.Id如果您正在寻找配对,则使用以下条件进行连接:
select t1.Value, t2.Value
from table t1 join
table t2
on t1.Value + t2.Value = 8;
编辑:
如果您确实想要得到1和5,而不是5和1,那么您需要在on
子句中使用distinct和另一个条件:
select distinct t1.Value, t2.Value
from table t1 join
table t2
on t1.Value + t2.Value = 8 and
t1.Id <= t2.Id;
选择不同的t1.值,t2.值
从表t1连接
表t2
在t1.值+t2.值=8和
t1.Id你可以做一个自交叉连接
,并对照总数进行检查。您可以进行自交叉连接
并对照总数进行检查。请尝试以下操作:
SELECT T1.ID,T2.ID as ID2
FROM TableName T1 CROSS JOIN
TableName T2
WHERE T1.Value+T2.Value=8 AND T1.ID<=T2.ID
ORDER BY T1.ID
请参见中的结果。尝试以下操作:
SELECT T1.ID,T2.ID as ID2
FROM TableName T1 CROSS JOIN
TableName T2
WHERE T1.Value+T2.Value=8 AND T1.ID<=T2.ID
ORDER BY T1.ID
请参见中的结果。谢谢,回答问题。。我刚刚编辑了一些东西,你能帮我一下吗。也应该是同一个表中的值?谢谢,回答了问题。。我刚刚编辑了一些东西,你能帮我一下吗。也应该是同一个表中的值?