请在这里提供一些有关(高级)mysql 的帮助。例子更好地说明了这个问题。所以..
我有一个预定义的值对表 PARTNERS,其中包含partner1 和partner2 列。然后还有另一个表 PROJECTS,其中包含partner1 和partner2 列。
因此,我想选择列partner1和partner2位于上述实际合作伙伴表中的所有项目。
显然,我不能简单地指出“其中partner1=...和/或partner2=...”,因为不会检查这两个是否是合作伙伴(如 PARTNERS 表中所定义)。 (以防万一:有partner1和partner2的项目不属于合作伙伴关系。)
我认为这种查询根本不可能,因为它的条件存储在结果中。但如果有人能证明事实并非如此,我会很高兴。 谢谢
最佳答案
听起来您需要一个查询来为您提供 PROJECTS 中的行,其中合作伙伴 1 和合作伙伴 2 与 PARTNERS 中的任何行中的行相同。因此,进行内部联接:
SELECT * FROM projects
INNER JOIN partners
ON projects.partner1 = partners.partner1
AND projects.partner2 = partners.partner2
如果您打算重组表,那么为 PARTNERS 中的每一行分配一个唯一的 ID 并在 PROJECTS 表中使用该 ID 可能更有意义。这样,您就不必存储两列冗余数据,而只需一列指示哪对学生参与该项目。
关于mysql通过参数关系选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11692831/