【发布时间】:2017-03-30 14:43:28
【问题描述】:
由于我从另一个表中添加了图像,它给了我重复,我不知道为什么。我已经输入了 DISTINCT 但没有任何结果。
在这里您可以看到表格“照片”。我的代码的结果将是“Internnummer 1”的两倍和“Internnummer 2”的三倍。
实习生 |伏尔加 |福托纳姆
1 | 0 | Image_1.jpg
1 | 1 | Image_2.jpg
2 | 0 | Image_3.jpg
2 | 1 | Image_4.jpg
2 | 2 | Image_5.jpg
在我已经让它工作的代码中,只显示“VolgNr”0 的图像。但是,它仍然复制了其余的数据。
每当我使用它时,一切都很好,当然除了图像。
sql = "SELECT DISTINCT * FROM 场合内连接照片 ON 场合.Internnummer = fotos.Internnummer";
完整代码:
<?php
$sql = "SELECT DISTINCT * FROM occasions INNER JOIN fotos ON occasions.Internnummer = fotos.Internnummer";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo
"<div class='oc-item'>" .
// Product image
"<div class='oc-image'>" .
"<img src='http://example.com/images/" . ($row['VolgNr'] == 0 ? $row["Fotonaam"] : $row['OmschrijvingNL']) . "'/>" .
"</div>".
// Product information
"<div class='oc-info'><b>" .
"<a href=\"occasion?id=".$row['Internnummer']."\" >". $row["OmschrijvingNL"]. "</a>" .
"</b>".
"<p>" . ($row['Prijs'] == 0 ? 'Prijs op aanvraag' : $row['Prijs']) . "</p><br />" .
"<p>" .
$row["Memotekst1NL"]. "</p>" . "<p>" .
$row["Memotekst2NL"]. "</p>" . "<p>" .
$row["Memotekst3NL"]. "</p>" . "<p>" .
$row["Memotekst4NL"]. "</p>" . "<p>" .
$row["Memotekst5NL"]. "</p>" . "<p>" .
"<a href=\"occasion?id=".$row['Internnummer']."\" >"."Lees meer..."."</a>" .
"</div>" .
"</div>";
}
} else {
echo "Geen resultaten gevonden.";
}
?>
【问题讨论】:
-
DISTINCT 意味着每一行都是唯一的,并不是说它不会重复基表中的数据。使用适合您需要的分组或使用某些东西来补充水分。
-
是的,我明白了,但不是每一行都是唯一的,对吧...?重复项具有所有相同的“Internummer”。他们唯一的区别是图像,但每当我删除完整图像时,它仍然显示重复,而它应该只检查“Internnummer”。
-
在你给我们的例子中,行是唯一的,没有重复。好像没有加入?并且
DISTINCT *等于group by按顺序使用所有表中的所有字段。