Mysql 使用两个表中不同的值进行SQL联接

Mysql 使用两个表中不同的值进行SQL联接,mysql,sql,Mysql,Sql,我有一张客户订单表和一张不同配置的手机表。我想从手机中找到一条记录,根据配置匹配每个订单 例如,如果订单要求使用256 GB内存的红色手机,则应选择具有类似配置的手机,但如果该手机还要求使用256 GB内存的红色手机,则不应在下一订单中选择该手机 请帮助我使用SQl查询来构建上述连接。如果没有示例数据和所需的结果,要理解您的问题有点困难。但我想我理解你的要求。这是两个表之间的配置分配问题。您希望行与没有重复的行相对应 假设每个表都有一个配置,您可以使用row\u number(): 您使用的是M

我有一张客户订单表和一张不同配置的手机表。我想从手机中找到一条记录,根据配置匹配每个订单

例如,如果订单要求使用256 GB内存的红色手机,则应选择具有类似配置的手机,但如果该手机还要求使用256 GB内存的红色手机,则不应在下一订单中选择该手机


请帮助我使用SQl查询来构建上述连接。

如果没有示例数据和所需的结果,要理解您的问题有点困难。但我想我理解你的要求。这是两个表之间的配置分配问题。您希望行与没有重复的行相对应

假设每个表都有一个配置,您可以使用
row\u number()


您使用的是MySQL还是SQLite?无论哪种方式,我认为在JOIN中这都是非常困难的。这不是一个关系操作。我认为
ON
条件没有任何方法可以知道在结果的前几行中选择了哪些行。如果您试图避免退回的手机数量超过库存,则需要按顺序处理订单。每个订单都应该减少库存中的数量,并且您应该只返回库存中至少有1项的结果。您可以更具体一点并共享表架构吗?
select o.*, p.*
from (select o.*,
             row_number() over (partition by configuration order by configuration) as seqnum
      from orders o
     ) o left join
     (select p.*,
             row_number() over (partition by configuration order by configuration) as seqnum
      from phones p
     ) p 
     on p.configuration = o.configuration and p.seqnum = o.seqnum;