Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择从一个使用外键链接的表到多个表的查询_Mysql_Database_Select - Fatal编程技术网

Mysql 选择从一个使用外键链接的表到多个表的查询

Mysql 选择从一个使用外键链接的表到多个表的查询,mysql,database,select,Mysql,Database,Select,我的数据库由这些表组成 products( id INT(10) AUTO_INCREMENT, name VARCHAR(16) NOT NULL, PRIMARY KEY (id) ); /* ^ One | To | Many v */ versions( id INT(10) AUTO_INCREMENT, product_id INT(10)

我的数据库由这些表组成

    products(
    id INT(10) AUTO_INCREMENT,
    name VARCHAR(16) NOT NULL, 
    PRIMARY KEY (id)
);

/*      ^
    One |
       To
        | Many
        v
*/
versions(
        id INT(10) AUTO_INCREMENT,
        product_id INT(10)
        name VARCHAR(16) NOT NULL, 
        PRIMARY KEY (id),
        FOREIGN KEY (product_id) REFERENCES products(id)
    );


 /*      ^
        One |
           To
            | Many
            v
    */
    subversions(
                id INT(10) AUTO_INCREMENT,
                version_id INT(10)
                name VARCHAR(16) NOT NULL, 
                PRIMARY KEY (id),
                FOREIGN KEY (version_id) REFERENCES versions(id)
            );
/*      ^
    Many|
       To
        | Many
        v
*/
users(
                id INT(10) AUTO_INCREMENT,
                name VARCHAR(16) NOT NULL, 
                password VARCHAR(32) NOT NULL,
                PRIMARY KEY (id),
            );
然后我有

subversions_users_conjuction(
                    id INT(10) AUTO_INCREMENT,
                    subversion_id VARCHAR(16) NOT NULL, 
                    user_id VARCHAR(32) NOT NULL,
                    PRIMARY KEY (id),
                    FOREIGN KEY (subversion_id) REFERENCES subversions(id),
                    FOREIGN KEY (user_id) REFERENCES users(id)

);
我所要做的是根据当前用户查询products.name(和id..或任何一个字段)。
因此,如果我有一个id=1的用户,我需要搜索表subversions\u用户以获得所有subversions匹配,然后从中获得所有版本匹配,然后是所有产品匹配,以及所有不重复的,如此不同。我真的不知道从哪里开始

像下面这样的事情,也许

SELECT DISTINCT p.name
FROM products AS p
    INNER JOIN versions AS v ON p.id = v.product_id
    INNER JOIN subversions AS s ON v.id = s.version_id
    INNER JOIN subversions_users_conjuction AS c ON s.id = c.subversion_id
WHERE c.user_id = <<<ID>>>;
选择不同的p.name
从产品中提取p
内部连接版本为p.id=v.product\u id上的v
v.id=s.version\u id上作为s的内部连接subversion
内部连接subversions\u用户\u连接为s.id=c.subversion\u id上的c
其中c.user_id=;

您熟悉联接吗?您想了解更多信息吗?我刚刚运行了它,结果是正确的,非常感谢