0

我正在尝试从多个表的多个列中获取值。代码如下所示:

<?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);
}
?>

结果,这些值出现了两次,而不是只出现一次。我检查了这两个表,但这两个表确实包含同名的列。

4

2 回答 2

1

您是否从 mysql 客户端中的代码运行查询?

您正在进行隐式交叉连接,这就是为什么您会得到看似重复的结果。实际上,您正在获得两个表的笛卡尔积。

在http://en.wikipedia.org/wiki/Join_%28SQL%29#Cross_join阅读更多相关信息,并考虑使用左连接。

由于您没有发布表的架构,因此我无法告诉您更多信息。

于 2013-05-01T11:18:55.743 回答
0

查询的 Cehck 输出

从 exp_channel_titles、exp_channel_data 中选择标题、field_id_1

根据关系加入两个表,使用不同的,这将解决你的问题

于 2013-05-01T11:15:09.103 回答