大家好,我在寻找一种无需使用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/