我试图通过加入两个表来获得结果。但我没有得到正确的结果。谁能告诉我哪里错了?
这是我的代码
$sql = "SELECT merchant.name, keyword.name
FROM keyword
INNER JOIN merchant
ON merchant.id=keyword.merchant_id";
我的表格结构是
关键字
1.name(关键字名称)
2.merchant_id
商户
1.id
2.name(商家名称)
结果sholud就像这样
商家名称||||||关键字名称
和SQL提取查询是
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td>".$row['name']."</td><td>".$row['name']."</td>";
}
但输出是
关键字名称||||||关键字名称
只有我得到关键字名称
任何人都可以告诉我哪里错了。 (抱歉我的英语不好)
答案 0 :(得分:2)
不要使用mysql使用Mysqli
你可以尝试
$sql = "SELECT merchant.name as mname, keyword.name as kname FROM keyword INNER JOIN merchant ON merchant.id=keyword.merchant_id";
和
echo "<tr><td>".$row['mname']."</td><td>".$row['kname']."</td>";
答案 1 :(得分:1)
试试这个
$sql = "SELECT merchant.name as m_name, keyword.name as a_name
FROM keyword
INNER JOIN merchant
ON merchant.id=keyword.merchant_id";
然后
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td>".$row['m_name']."</td><td>".$row['a_name']."</td>";
}
答案 2 :(得分:1)
问题出现是因为您在查询中有两个列具有相同的名称,第二个列首先覆盖。试试这个:
$sql = "SELECT merchant.name as mer_name, keyword.name as k_name // Aliasing for column names
FROM keyword
INNER JOIN merchant
ON merchant.id=keyword.merchant_id";
并使用它:
$row['mer_name'], $row['k_name'];