我需要从两个表中选择数据并显示它,但我的PHP文件似乎是重复发布。我希望能够获取所有描述并将其与表1中使用的ID相关联。
我设法让它的一些工作,但它显示Jake两次的名称是他们无论如何我可以过滤掉重复项。
由于
这是我的代码
$sql = "SELECT table1.name, table2.description
FROM table1
INNER JOIN table2
on table1.id = table2.customerid";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['name']."<br>";
echo $row['description']."<br>";
}
表1
id name
1 james
2 jake
3 aaron
4 holly
表2
id customerid description
1 1 hey1
2 2 hey2
3 2 hey3
4 3 hey4
5 4 hey5
答案 0 :(得分:1)
您可以使用DISTINCT
约束。
如果假设两行是&#34;相同&#34;只有当行具有所有列的相同值时,才会将它们分组到一个DISTINCT
查询中:
SELECT DISTINCT table1.name,table2.description
FROM table1
INNER JOIN table2
ON table1.id = table2.customerid
否则,您可以使用GROUP BY
语句。但随后出现了一个问题:哪个&#34;描述&#34;你会选择吗?因为杰克有两个。 MySQL实现了几个function aggregates。潜在候选人是MIN
,它返回按字母顺序排序的最小值。该查询然后显示:
SELECT table1.name,MIN(table2.description)
FROM table1
INNER JOIN table2
ON table1.id = table2.customerid
GROUP BY table1.name