【问题标题】:How can i use multiple table in select query?(without Inner join)如何在选择查询中使用多个表?(没有内连接)
【发布时间】:2015-10-11 08:12:53
【问题描述】:

我想在一个选择查询中获取两个表而无需内部连接,我可以这样做吗?

if(isset($_POST['search']))    
{   $name=$_POST['searchtxt'];    

$result = mysql_query("SELECT * FROM `product_tb_men` WHERE `name` LIKE '%".$name."%'");    

}    

这不是完整的代码,第二个表名是product_tb_women..

【问题讨论】:

  • 还有其他选项,而不是inner join,比如left join, right join
  • 没有内连接,可以试试UNION来选择两个表之间不同的记录。
  • 查看 SQL 注入和 PHP 已弃用的 mysql_ API

标签: php mysql select search


【解决方案1】:

你可以这样使用UNION

if(isset($_POST['search']))    
{
    $name=$_POST['searchtxt'];
    $query = "SELECT * FROM `product_tb_men` WHERE `name` LIKE '%".$name."%'"
                ." UNION "
                ."SELECT * FROM `product_tb_women` WHERE `name` LIKE '%".$name."%'";

    $result = mysql_query($query);
}  

您确实需要考虑mysql_* 函数的使用并清理 name 的值以避免 SQL 注入

【讨论】:

  • 已修复,请立即尝试。
【解决方案2】:

使用 if 语句... if(first query) {do } else if (second query ) {do}

【讨论】:

    【解决方案3】:

    $result = mysql_query("SELECT *.pm, *.pw FROM product_tb_men pm, product_tb_women pw WHERE pm.name LIKE '%".$name."%'" 或 pw.name LIKE '%".$name."%'");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 2023-04-06
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2016-02-03
      • 2022-12-07
      相关资源
      最近更新 更多