我试图从多个表中的多个列中获取值。代码如下所示:
<?php
$connect = mysql_connect("localhost","en","]9");
mysql_select_db("en");
$result = mysql_query("SELECT title, field_id_1 FROM exp_channel_titles, exp_channel_data") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["video_path"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$s1 = explode('"',$row['field_id_1']);
$path = array();
$path["field_id_1"] = $s1[5];
$path["title"] = $row["title"];
array_push($response["video_path"], $path);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
// echo no users JSON
echo json_encode($response);
}
?>
在结果中,值出现两次而不是一次。我检查了两个表,但是这两个表确实包含了同名的列。
答案 0 :(得分:1)
您是否在mysql客户端中使用您的代码运行查询?
你正在进行隐式交叉连接,这就是为什么你得到了似乎重复的结果。事实上,你正在获得两个表的笛卡尔积。
在http://en.wikipedia.org/wiki/Join_%28SQL%29#Cross_join了解详情,并考虑使用左连接。
由于您没有发布表格的架构,我无法告诉您更多信息。
答案 1 :(得分:0)
查询的Cehck输出
SELECT title,field_id_1 FROM exp_channel_titles,exp_channel_data
根据关系加入两个表,使用distinct,这将解决您的问题