php - 如何从匹配对的 MySQL 表中找到共享键值?

标签 php mysql

<分区>

我有一个两列的 MySQL 表,它代表具有三种不同选项(尺寸、颜色等)的产品变体

##############################
#  VariationID  #  OptionID  #
##############################
#            1  #        10  #
#            1  #        20  #
#            1  #        30  #
#            2  #        11  #
#            2  #        20  #
#            2  #        30  #
#            3  #        10  #
#            3  #        22  #
#            3  #        30  #
#            4  #        10  #
#            4  #        20  #
#            4  #        33  #
##############################

该表是由我使用的 PHP 框架 (Silverstripe) 生成的,因此我无法轻易修改它。

如何确定哪个 VariationID 与特定选项匹配?

我可以运行一个 MySQL 查询来返回 OptionID 为 10、20、30 的变体的 VariationID 吗?

如果在原始 MySQL 中不可能,那么在 PHP 中最好的方法是什么?

最佳答案

可以直接用SQL,就是有点乱:

SELECT 
  A.VariationID AS VariationID
FROM
  tablename AS A
  INNER JOIN tablename AS B ON A.VariationID=B.VariationID
  INNER JOIN tablename AS C ON A.VariationID=C.VariationID
WHERE
  A.OptionID=10
  AND B.OptionID=20
  AND C.OptionID=30

这将找到行的 VariationIDOptionID 值为 10、20 和 30

关于php - 如何从匹配对的 MySQL 表中找到共享键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23330488/

相关文章:

PHP 为什么数组会节省额外的行

php - 使用 PHP 和 Bootstrap 显示 sql 表中的行信息

php - WooCommerce:从数组中的产品中获取评论并按星级对它们进行排序

php - CodeIgniter:插入带有事件记录的数组时出现错误

php - 获取其中包含斜杠的对象属性

mysql - 触发复合键并更新另一列

mysql - SQOOP:表导入错误

php - 确定星期一和星期五代码停止工作

MySQL 使用 JOIN 更新 - 为什么它只用一个值更新每个字段?

php - 未捕获的类型错误 : Cannot read property JSON