2つの異なるテーブルから値を選択し、同じIDの値を行に出力します

ウルフトリック

私はこのデータベースを持っています

表「ADS」

ID   |   Visible
-----------------
15   |      1
16   |      1
17   |      1

テーブル「IMAGES_ADS」

ID    |    NAME    |   ID_ADS
------------------------------
100   |  xlasd.jpg |    15
101   |  dadsa.jpg |    15
102   |  dsfsf.jpg |    16
103   |  ghdfd.jpg |    17
104   |  jkyhg.jpg |    17
105   |  rerem.jpg |    17

ここで、この2つのテーブルから値を取得するphpページを作成し、コンマで区切られたADSIDに関連する画像名の行を含むIDごとのADSのリストを出力します。

私はこのコードを書きました

<?php
//ENTER YOUR DATABASE CONNECTION INFO BELOW:
$servername = "localhost";
$username = "user";
$password = "xxxxxx";
$dbname = "dbname";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
    echo 'CONNECT TO DB';
}

$sql = "SELECT ADS.ID, IMAGES_ADS.NAME FROM ADS INNER JOIN IMAGES_ADS ON ADS.ID=IMAGES_ADS.ID_ADS WHERE ADS.Visible=1 ORDER BY ID ASC";
$results = $conn->query($sql);

echo '<table>';

if($results->num_rows > 0) {
    while($row = $results->fetch_assoc()) {
        echo '<tr>
                <td>'.$row["ID"].'</td>
                <td>'.$row["NAME"].'</td>
              </tr>';
    }
} else {
    echo '0 rows';
}
echo '</table>';

$conn->close();
?>

しかし、このコードを使用すると、次の結果が得られます。

15  xlasd.jpg
15  dadsa.jpg
16  dsfsf.jpg
17  ghdfd.jpg
17  jkyhg.jpg
17  rerem.jpg

しかし、私はこの種の結果が必要です:

15  xlasd.jpg, dadsa.jpg
16  dsfsf.jpg
17  ghdfd.jpg, jkyhg.jpg, rerem.jpg

どうすればこの結果を得ることができますか?

@Vipin Jainのおかげで、私は以下の解決策を書きます:

<?php
//ENTER YOUR DATABASE CONNECTION INFO BELOW:
$servername = "localhost";
$username = "user";
$password = "xxxxxx";
$dbname = "dbname";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} else {
    echo 'CONNECT TO DB';
}

$sql = "SELECT ADS.ID, GROUP_CONCAT(IMAGES_ADS.NAME SEPARATOR', ') as b
        FROM ADS INNER JOIN IMAGES_ADS
        ON ADS.ID=IMAGES_ADS.ID_ADS
        WHERE ADS.Visible=1
        ORDER BY ID ASC";

$results = $conn->query($sql);

echo '<table>';

if($results->num_rows > 0) {
    while($row = $results->fetch_assoc()) {
        echo '<tr>
                <td>'.$row["ID"].'</td>
                <td>'.$row["b"].'</td>
              </tr>';
    }
} else {
    echo '0 rows';
}
echo '</table>';

$conn->close();
?>
ヴィピンジャイン

GROUP_CONCATを使用する必要があります

SELECT ADS.ID, GROUP_CONCAT(IMAGES_ADS.NAME)
FROM ADS 
INNER JOIN IMAGES_ADS 
ON ADS.ID=IMAGES_ADS.ID_ADS 
WHERE ADS.Visible=1 
GROUP BY ID 
ORDER BY ID ASC;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

1つのテーブルの異なる行から異なる値を選択します

分類Dev

SQL2つの異なるテーブルから同じ列を選択します

分類Dev

mysqlはフィールド値に応じて2つの異なるテーブルを選択します

分類Dev

同じIDを持つ異なるテーブルからすべての値を更新します

分類Dev

同じIDを持つ2つのテーブルからすべての行を選択します

分類Dev

同じテーブル内の別の値と一致する行から値を選択します

分類Dev

1つのテーブルから同じ列を2回選択しますが、条件が異なります

分類Dev

同じテーブルの行から値と次に高い値を選択します

分類Dev

2つの異なるテーブルからデータを取得し、列の値に出力します

分類Dev

2つのテーブルから同じ値のペアを選択します

分類Dev

同じID#を使用して3つのテーブルから行を選択するより高速な方法

分類Dev

2つのテーブルを結合し、2つの異なる行に同じ値のテーブルを生成します

分類Dev

SQL Server - 同じテーブル内の異なる行から値を選択する方法

分類Dev

2つのテーブルから行の最大値を選択します

分類Dev

同じテーブルで2つの異なる選択を「参加」しますか?

分類Dev

新しいテーブルの複数の行に同じ行から異なる値を挿入する方法

分類Dev

異なる変数のテーブルから同じ値を取得します

分類Dev

SQLは、列名が異なる2つの異なるテーブルから行を選択します

分類Dev

異なる行に同じ値を持つ2つの異なる列を持つテーブルを更新します

分類Dev

同じ列に2つの異なる値がある行を選択します

分類Dev

同じIDに基づいて2つのテーブルからすべてを選択します

分類Dev

同じテーブルmysqlからの選択値から同じテーブルを更新します

分類Dev

IDは同じで、他の2つの列の値が異なる選択行にアクセスします

分類Dev

2つの異なるテーブルを比較し、条件に基づいて値を選択します

分類Dev

MySQL:2つの異なるENUM値に応じて、異なる行から最小値と最大値を選択します

分類Dev

同じIDを持つ別のテーブルの行が別の列に特定の値を持つ場合を除いて、テーブルからすべての行を選択します

分類Dev

同じテーブルから複数の値を選択します

分類Dev

テーブル内の別の列で ID が同じで値が異なる行を選択する

分類Dev

PythonMysqlは異なるテーブルで同じ値を選択します

Related 関連記事

  1. 1

    1つのテーブルの異なる行から異なる値を選択します

  2. 2

    SQL2つの異なるテーブルから同じ列を選択します

  3. 3

    mysqlはフィールド値に応じて2つの異なるテーブルを選択します

  4. 4

    同じIDを持つ異なるテーブルからすべての値を更新します

  5. 5

    同じIDを持つ2つのテーブルからすべての行を選択します

  6. 6

    同じテーブル内の別の値と一致する行から値を選択します

  7. 7

    1つのテーブルから同じ列を2回選択しますが、条件が異なります

  8. 8

    同じテーブルの行から値と次に高い値を選択します

  9. 9

    2つの異なるテーブルからデータを取得し、列の値に出力します

  10. 10

    2つのテーブルから同じ値のペアを選択します

  11. 11

    同じID#を使用して3つのテーブルから行を選択するより高速な方法

  12. 12

    2つのテーブルを結合し、2つの異なる行に同じ値のテーブルを生成します

  13. 13

    SQL Server - 同じテーブル内の異なる行から値を選択する方法

  14. 14

    2つのテーブルから行の最大値を選択します

  15. 15

    同じテーブルで2つの異なる選択を「参加」しますか?

  16. 16

    新しいテーブルの複数の行に同じ行から異なる値を挿入する方法

  17. 17

    異なる変数のテーブルから同じ値を取得します

  18. 18

    SQLは、列名が異なる2つの異なるテーブルから行を選択します

  19. 19

    異なる行に同じ値を持つ2つの異なる列を持つテーブルを更新します

  20. 20

    同じ列に2つの異なる値がある行を選択します

  21. 21

    同じIDに基づいて2つのテーブルからすべてを選択します

  22. 22

    同じテーブルmysqlからの選択値から同じテーブルを更新します

  23. 23

    IDは同じで、他の2つの列の値が異なる選択行にアクセスします

  24. 24

    2つの異なるテーブルを比較し、条件に基づいて値を選択します

  25. 25

    MySQL:2つの異なるENUM値に応じて、異なる行から最小値と最大値を選択します

  26. 26

    同じIDを持つ別のテーブルの行が別の列に特定の値を持つ場合を除いて、テーブルからすべての行を選択します

  27. 27

    同じテーブルから複数の値を選択します

  28. 28

    テーブル内の別の列で ID が同じで値が異なる行を選択する

  29. 29

    PythonMysqlは異なるテーブルで同じ値を選択します

ホットタグ

アーカイブ