mysql通过参数关系选择数据

标签 mysql select

请在这里提供一些有关(高级)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/

相关文章:

sql - 可以使用 GROUP BY 或 HAVING 改进这个简单的选择吗?

sql - 旋转单行列 T-SQL

sql - 在 PostgreSQL 中格式化日期

mysql - 删除不同步的 MYSQL 从属服务器

php - 在MySQL数据库中插入特殊字符,如alpha,beta

mysql - 在导出时,有没有办法在插入时不包含空值?

SQL在特定日期选择重复项

mysql - 什么时候使用多重索引?何时使用力量指数?

python - 如何从python中的gui连接到mysql数据库

jquery - 根据之前的选择禁用选项