从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页面,并按ID打印ADS列表,其中图像名称的一行与用逗号分隔的ADS ID相关。

我写了这段代码

<?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();
?>
维宾·贾恩(Vipin Jain)

您应该使用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

从2个不同的表中选择值,并在具有相同ID的行中打印值

来自分类Dev

在表的另一列中选择具有相同id但不同值的行

来自分类Dev

MYSQL从不同的行中选择2个具有相同值的不同字段

来自分类Dev

从具有相同ID的行中的不同列中选择值

来自分类Dev

从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

来自分类Dev

从不同的列中选择具有相同值的行

来自分类Dev

从不同的列中选择具有相同值的行

来自分类Dev

选择不同列中具有相同值的行或 null 。有多行具有相同的 id

来自分类Dev

在其他2列中访问具有相同ID但值不同的选择行

来自分类Dev

遍历具有相同id的所有行,并在不同的表中找到匹配的值

来自分类Dev

连接两个表并在两个不同的行中产生具有相同值的表

来自分类Dev

SQLite:从一个表中选择所有具有与不同表中 ID 匹配的 ID 的行

来自分类Dev

选择另一列中具有相同ID但值不同的行

来自分类Dev

从表中选择所有具有不同值的列

来自分类Dev

从表中选择具有不同值的所有列

来自分类Dev

MySQL从ID中选择所有具有相同值的行

来自分类Dev

选择具有相同id但不同值的不同行

来自分类Dev

识别2个不同列中具有相同值的行

来自分类Dev

在python中与另一列具有相同值的行中选择具有最高列值的csv行

来自分类Dev

从表中选择具有至少一行匹配不同要求的值

来自分类Dev

如何在一行中获取具有相同ID但在另一列中具有不同值的数据并在php中显示到表中

来自分类Dev

从3个具有空值的表中选择

来自分类Dev

获取具有相同值的行并在R中创建不同的列

来自分类Dev

MySQL从2个表和计数中选择不同的值

来自分类Dev

从3个表中选择mysql中的不同值

来自分类Dev

选择在一列中具有相同值而在另一列中具有不同值的行

来自分类Dev

MySQL从ID选择具有相同值的所有行

来自分类Dev

Django ORM:如果表A在表B中具有相同的id(FK),则从表A中选择行;如果满足条件,则在其中选择A中的行:

来自分类Dev

在MySQL中,我如何从具有相似值的行中选择所有ID

Related 相关文章

  1. 1

    从2个不同的表中选择值,并在具有相同ID的行中打印值

  2. 2

    在表的另一列中选择具有相同id但不同值的行

  3. 3

    MYSQL从不同的行中选择2个具有相同值的不同字段

  4. 4

    从具有相同ID的行中的不同列中选择值

  5. 5

    从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

  6. 6

    从不同的列中选择具有相同值的行

  7. 7

    从不同的列中选择具有相同值的行

  8. 8

    选择不同列中具有相同值的行或 null 。有多行具有相同的 id

  9. 9

    在其他2列中访问具有相同ID但值不同的选择行

  10. 10

    遍历具有相同id的所有行,并在不同的表中找到匹配的值

  11. 11

    连接两个表并在两个不同的行中产生具有相同值的表

  12. 12

    SQLite:从一个表中选择所有具有与不同表中 ID 匹配的 ID 的行

  13. 13

    选择另一列中具有相同ID但值不同的行

  14. 14

    从表中选择所有具有不同值的列

  15. 15

    从表中选择具有不同值的所有列

  16. 16

    MySQL从ID中选择所有具有相同值的行

  17. 17

    选择具有相同id但不同值的不同行

  18. 18

    识别2个不同列中具有相同值的行

  19. 19

    在python中与另一列具有相同值的行中选择具有最高列值的csv行

  20. 20

    从表中选择具有至少一行匹配不同要求的值

  21. 21

    如何在一行中获取具有相同ID但在另一列中具有不同值的数据并在php中显示到表中

  22. 22

    从3个具有空值的表中选择

  23. 23

    获取具有相同值的行并在R中创建不同的列

  24. 24

    MySQL从2个表和计数中选择不同的值

  25. 25

    从3个表中选择mysql中的不同值

  26. 26

    选择在一列中具有相同值而在另一列中具有不同值的行

  27. 27

    MySQL从ID选择具有相同值的所有行

  28. 28

    Django ORM:如果表A在表B中具有相同的id(FK),则从表A中选择行;如果满足条件,则在其中选择A中的行:

  29. 29

    在MySQL中,我如何从具有相似值的行中选择所有ID

热门标签

归档