Mysql 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

我必须找到存储在数据库中的数据组合,以使用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

如何从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

请参见中的结果。

谢谢,回答问题。。我刚刚编辑了一些东西,你能帮我一下吗。也应该是同一个表中的值?谢谢,回答了问题。。我刚刚编辑了一些东西,你能帮我一下吗。也应该是同一个表中的值?