mysql通过参数关系选择数据

时间:2012-07-27 17:36:52

标签: mysql select

请使用(高级)mysql一些帮助。示例更好地说明了问题。所以..

我有一个带有partner1和partner2列的预定义值对表PARTNERS。然后还有另一个表PROJECTS,其中包含partner1和partner2列。

因此,我想选择列partner1和partner2在上述实际合作伙伴表中的所有PROJECTS。

显然,我不能简单地指出"其中partner1 = ...和/或partner2 = ..."因为不会检查这两者是否是合作伙伴(如PARTNERS表中所定义)。 (以防万一:有伙伴关系中没有合作伙伴1和合作伙伴2的项目。)

我根本不认为这种查询是可能的,因为它的条件存储在结果中。但如果能证明不是这样的话会很高兴。 感谢

1 个答案:

答案 0 :(得分:2)

听起来您需要一个查询,它会为您提供PROJECTS中的行,其中合作伙伴1和合作伙伴2都与合作伙伴中的任何行中的行相同。内连接也是如此:

SELECT * FROM projects
INNER JOIN partners
    ON projects.partner1 = partners.partner1
    AND projects.partner2 = partners.partner2

如果您要重组表,那么为PARTNERS中的每一行分配一个唯一ID可能更有意义,并在PROJECTS表中使用该ID。这样,您只需要一列指示项目中的哪一对学生,而不是存储两列冗余数据。