我想知道是否有人可以帮助我找到从具有共同 ID 的两个表中提取数据的最有效方法。
一个简单的例子是我有两个表;具有以下字段的客户和消息:
客户 - id、名字、姓氏
消息 - customer_id,消息
关系是客户表只有一个具有唯一 id 的条目,但消息表可以为每个客户提供多条消息。
在 PHP 页面上,我想在页面顶部显示客户姓名,然后显示该客户的所有消息。
目前,我正在使用以下两个查询:
$q1 = mysql_query("SELECT * FROM customers WHERE id='123'");
while($row1= mysql_fetch_assoc($q1)){
echo "$row1[firstname] $row1[surname]";
}
$q2 = mysql_query("SELECT * FROM messages WHERE customer_id='123'");
while($row2= mysql_fetch_assoc($q2)){
echo "$row2[message]";
}
这是我想要实现的目标的简化版本,但我想知道是否有一种方法可以通过一个查询来做到这一点。我在这里搜索时看到了 JOIN 和 UNION 函数(但从未使用过它们),但看不到这些函数如何允许我在所有消息中只显示一次客户名称。如果这些来自一个查询并且有 10 条消息,那么客户名称将重复 10 次?
不确定我在那里是否完全理解,但任何帮助将不胜感激:)