【问题标题】:Fetch data from database from multiple tables matching condition从多个匹配条件的表中从数据库中获取数据
【发布时间】:2014-09-18 22:40:50
【问题描述】:

我想从数据库中获取数据。我的数据库中有三个表:listing_master_residentiallisting_master_condolisting_master_commercial。所有表中都有一个主键Ml_num。我想从一个匹配 mls 数字表的表中搜索数据。

if (isset($_POST['search'])) {
    $mls=$_POST['mls_number'];
    $sql = "SELECT * FROM listing_master_residential,
        listing_master_condo, 
        listing_master_commercial  
        INNER JOIN listing_master_residential AS res ON res.Ml_num=Ml_num
        INNER JOIN listing_master_condo AS con ON con.Ml_num=Ml_num
        INNER JOIN listing_master_commercial AS com ON com.Ml_num=Ml_num
        WHERE Ml_num='$mls'";
    $result = $wpdb->get_results($sql) or die(mysql_error());
    foreach ( $result as $row) {
        echo $row->Lot_code."<br/>";
        echo $row->Ml_num."<br/>";
        echo $row->Acres;
        echo $row->Addr."<br/>";
        echo $row->Bath_tot;
        echo $row->Br;
        echo $row->Br_plus;
    }
}

通过上述,我得到一个错误:

where 子句中的“Ml_num”列不明确

【问题讨论】:

  • 这里的问题应该是针对 wordpress 的,而你的问题是关于 sql 语法错误的。这类问题可能会得到答案,但有更好的论坛可以提问。
  • 您好,先生,我在这里使用 wordpress 开发一个 wordpress 插件
  • 您好,您对如何获取数据有任何建议

标签: wordpress mysql


【解决方案1】:

因为 Ml_num 列在所有表格中,您需要使用完全限定名称对其进行寻址,例如 con.Ml_num

我还注意到您将所有表格加入了两次,一次使用隐式连接,一次使用 ANSI 连接 隐式连接会导致交叉连接,因为 where 子句中没有连接条件。

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2017-10-26
    • 2019-08-19
    • 2021-06-17
    相关资源
    最近更新 更多