1

隣り合った 2 つの異なるテーブルから列を取得したいと考えています。

私は以下のようにPHPコードを持っています:

<table>
 <tr>
<th>Date</th>
<th>Performance A </th>
<th>Performance B </th>
</tr>
$sql = "select date, Aperformance from table1 group by date";
$sql1 = "select date, Bperformance from table2 group by date";
$result = mssql_query($sql);
while ($column = mssql_fetch_array($result))

{
echo "<tr><td>".$column[0]."</td>";
echo "<td>".$column[1]."</td></tr>";
}

そして、これは以下のような出力を生成します:

 Date     | Performance A | Performance B
 01/05/12 | 40%           | 
 02/05/12 | 30%           |
 03/05/12 | 25%           |

ここで、クエリ $sql1 の 3 番目の列を埋めたいと思います。$sql1 の日付列は必要ありません。2 番目の列 Bperformance がここに入れる必要があります。どうすればそれができますか?

4

2 に答える 2

1

単純に結合を使用できます。完全外部結合を使用すると、テーブルのいずれかに一致する日付がない場合に行を取得できます

SELECT A.Date , A.APerformance AS [Performance A] , B.BPerformance AS [Performance B]
FROM (
    SELECT Date
        ,APerformance
    FROM Table1
    GROUP BY Date
    ) A
FULL OUTER JOIN (
    SELECT Date
        ,BPerformance
    FROM Table2
    GROUP BY Date
    ) B ON A.Date= B.Date
于 2013-01-15T17:03:05.383 に答える
0

両方のクエリが同じ数の行を返すと仮定すると、次のように簡単に実行できます。

$result1 = mssql_query($sql);
$result2 = mssql_query($sql2);
while($column1 = mssql_fetch_array($result1)) {
    $column2 = mssql_fetch_array($result2);
    echo "<tr><td>$column1[0]</td><td>$column2[0]</td></tr>";
}

クエリが異なるサイズの結果セットを返す場合は、追加の作業を行う必要があります。

于 2013-01-15T17:01:19.233 に答える