SQL使用PIVOT JOIN多个表

时间:2017-08-18 17:31:42

标签: sql

我试图在第三张桌子上与一个PIVOT一起INNER JOIN 3桌子。加入并不是一个问题,但PIVOT对我来说是一个新手,将它们组合在一起已经变成了一场灾难。我不确定如何执行以下操作:

    Table 1
ID  Mnemonic    Gender
1   SKYL        F
2   HANS        M

    Table 2
ID  LastName    FirstName
1   Skywalker   Leia
2   Solo        Han

    Table 3
ID  Query   Response
1   a       red
1   b       green
1   c       blue
1   d       yellow
2   a       black
2   b       white
2   c       orange
2   d       purple

                        Final Table
ID  Mnemonic    Gender  LastName    FirstName   Query_a     Query_b
1   SKYL        F       Skywalker   Leia        red         green
2   HANS        M       Solo        Han         black       white

我知道我遇到问题的一个方面是我不想要所有的回应'从表3中可以看出'查询'专栏是' a'或者' b'。我最终可能会创建2个新表来替换表3,所以我可以一起摆脱PIVOT,只是INNER加入4个表。

我跟随SQL server join tables and pivot但是无法使用超过2个表而不是所有查询都需要PIVOT&#39}。

1 个答案:

答案 0 :(得分:0)

你只需要转动表3 - 所以只需将表3用CTE表达式转动如下,然后将结果加入表1和2

protected function getResponseCode($url) {
    $ch = curl_init($this->baseUrl.$url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_TIMEOUT,10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_exec($ch);
    return curl_getinfo($ch, CURLINFO_HTTP_CODE);
}

public function testRootPath()
{
    $this->assertEquals(200, $this->getResponseCode('/'));
}