我有一個程序,用於從源和源外下載信息,併爲我輸入的每個查詢提供一個sql頁面。正常情況下,有3 - 6個查詢關聯與每個標題。 每個sql頁面都會加載一個新表格,並且所有表格都有相同的列。以下是Used Automotive和NewCar查詢結果的示例,它是Title Automotive涉及的6個查詢中的2個。如何使用mysql從多個表中選擇具有相似列的唯一行
CREATE TABLE IF NOT EXISTS NewCar(Name char(255) DEFAULT NULL,
Phone char(255) DEFAULT NULL,
Address char(255) DEFAULT NULL,
Website char(255) DEFAULT NULL,
Email char(255) DEFAULT NULL,
Category char(255) DEFAULT NULL,
UNIQUE KEY Name (Name))
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
LOCK TABLES NewCar WRITE;
REPLACE INTO NewCar VALUES('whats it Auto','1-888-555-7327','63 Beech Hill Rd, Beechville, NS B1G 2R9','http://www.whatsit.com','','New Car Dealers');
REPLACE INTO NewCar VALUES('Hugh\'s Chev','888-555-6990','376 Main St, lower bohemia, NS B5G 2D6','','','New Car Dealer');
REPLACE INTO NewCar VALUES('Be It Motors Ltd','866-555-2771','90 Main St, Upper Bohemia, NS B9G 2K8','','','New Car Dealers');
UNLOCK TABLES;
CREATE TABLE IF NOT EXISTS UsedCar(Name char(255) DEFAULT NULL,
Phone char(255) DEFAULT NULL,
Address char(255) DEFAULT NULL,
Website char(255) DEFAULT NULL,
Email char(255) DEFAULT NULL,
Category char(255) DEFAULT NULL,
UNIQUE KEY Name (Name))
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
LOCK TABLES UsedCar WRITE;
REPLACE INTO UsedCar VALUES('whats it Auto','1-888-555-7327','63 Beech Hill Rd, Beechville, NS B1G 2R9','http://www.whatsit.com','','Used Car Dealers');
REPLACE INTO UsedCar VALUES('Hugh\'s Chev','888-555-6990','376 Main St, lower bohemia, NS B5G 2D6','','','Used Car Dealer');
REPLACE INTO UsedCar VALUES('Be It Motors Ltd','866-555-2771','90 Main St, Upper Bohemia, NS B9G 2K8','','','Used Car Dealers');
UNLOCK TABLES;
這些然後被加載到我的數據庫。
我的問題是試圖將這些信息提取到我的網頁中。我想創建一個鏈接,顯示汽車排除類別下的獨特信息。我可以從一張桌子上做到這一點,但無法爲多張桌子做到這一點。 我試圖研究這個問題,並嘗試選擇DISTINCT和UNIQUE。以及做表JOIN和聯盟 - 我相信它可能是我忘記了很愚蠢的東西。
以下是我用於從單個表中繪製的PHP,該表已被修改爲嘗試從2個表中繪製並返回「找不到記錄」。
<?php
$result = mysql_query("SELECT DISTINCT Name FROM (SELECT * FROM UsedCar UNION SELECT*FROM NewCar) ORDER BY name ASC");
if(mysql_num_rows($result) == 0){
echo("no records found");
} ELSE {
echo "<table border='0'; table id='address'>
<tr>
<th>Name</th>
<th>Phone</th>
<th>Address</th>
<th>Website</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Phone'] . "</td>";
echo "<td>" . $row['Address'] . "</td>";
echo '<td><a href="' . $row['Website'] . '" target="_self\">' . $row["Website"] . '</a></td>';
echo "</tr>";
}
echo "</table>";
}
?>
對不起,長職位.. :)問題的
稍微偏離主題,但爲什麼不能有一個參考表指出它是否是一個單一的經銷表使用過,新的還是兩者? – Kermit
實際上汽車需要新車,二手車,輪胎,newparts,usedparts等。我將有鏈接,將它分解成類別分支。 – Simmy
請不要將mysql_ *函數用於新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。看到[紅色框](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你在意學習,這裏是[很好的PDO教程](http://goo.gl/vFWnC)。 –