大家好,我在寻找一种无需使用UNION即可在多个数据库表中进行搜索的方法。我的代码非常简单,类似于:

$con = new PDO( DB_HOST, DB_USER, DB_PASS );
    $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    $sql1 = "SELECT * FROM evidence_vin WHERE vin = :vin LIMIT 1";
    $sql2 = "SELECT * FROM national_register_sk WHERE vin = :vin LIMIT 1";
    $sql = $sql1 . ' UNION ' . $sql2;

    $stmt = $con->prepare( $sql ) union ( $sql2 );
    $stmt->bindValue( "vin", $this->vin, PDO::PARAM_STR );
    $stmt->execute();
        echo "<table>";
        echo "<th>Progress</th>";
        echo "<th>Claim number</th>";
        echo "<th>Make</th>";
        echo "<th>Status</th>";
        echo "<th>View</th>";
        echo "<th>Action</th>";
        while ($row = $stmt->fetch()){
            echo "<tr>";
            echo "<td>24</td>";
            echo "<td>".$row['claim_number']."</td>";
            echo "<td>".$row['license']."</td>";
            echo "<td>".$row['country']."</td>";
            echo "<td>".$row['vin']."</td>";
            echo "<td><a href=\"detail.php?id=".$row["id"]."&action=detail\">detail</td>";
            echo "</tr>";
             }
        }catch(PDOExeption $e){
        echo $e->getMessage();


我有一些问题,因为我将需要表一和表2的一些特定数据,而且我不确定我还需要哪一个。
所以我需要某种方法来从每个表中获得一行,其中VIN是$ this-> vin。 (两个表中的vin相同)

ps。表没有相同数量的列

最佳答案

看看JOINS:
http://www.sitepoint.com/understanding-sql-joins-mysql-database/

如果我正确理解您的问题,那应该解决它。

关于php - PHP/SQL-多表搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25305187/

10-13 02:02