mySQL:如何在数据库中搜索多个表?

时间:2016-04-01 03:05:16

标签: php mysql ajax search

我想在两张桌子中搜索。试过this,但没有奏效。我收到错误" Unkown Column ...."

HTML:

    if(isset($_POST['button_search']))
    {
      $search_keyword = $_POST['search_keyword'];

      $select = mysql_query("SELECT * from table_1 WHERE match(name_1) against ($search_keyword) 
        union all SELECT * from table_2 WHERE match(name_2) against ($search_keyword)");
      while($row = mysql_fetch_array($select))
      {
        echo $row['question'];
        echo $row['category_name'];
      }
   }

MYSQL SELECT和PHP:

+-------+-------------+
| id_1  |   name_1    |
+-------+-------------+ 
|  1     | Phinoy     | 
|  2     | Go         | 
+-------+-------------+

TABLES:

例如:

表1:

表名:table_1

值(表1):

+-------+-------------+
| id_2  |   name_2    |
+-------+-------------+ 
|  1     |   Gi       | 
|  2     | Phinas     | 
+-------+-------------+

表2:

表名:table_2

值:

$('.plsCheck').each(function(index, obj){
    var fillIn=false;
    $(obj).find('select input').each(function(idx, elem){if ($(elem).value !='') fillIn=true;});
    if(!fillIn) $(obj).remove();
}); 

如果我搜索" P"或者" Ph" ,它将显示价值观#Phinoy和Phinas"。

1 个答案:

答案 0 :(得分:1)

好。首先,您需要使用INNER JOIN同时比较两个表。在这段代码中,我们正在连接表1和表2的结果,然后我们调用table_1并使用INNER JOIN我们将比较table_2,如果在table_1中有任何结果LIKE table_2并且只发生在列name_1和name_2。

<?php
    $query = "SELECT 
    CONCAT(table_1.name_1,' and ',table_2.name_2) 
    FROM table_1 INNER JOIN table_2 
    ON table_1.name_1 LIKE table_2.name_2";
    mysql_query($query);
?>