2016-04-28 26 views
0

此查詢運行良好,但問題是我需要獲取另一個表中名爲rooms的房間號。從reservations表,只有room_id下面獲取數據的查詢:從此查詢中的另一個表中提取值

$select_table = "SELECT id, name, phone, email, address, country, adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, status, paid, date FROM reservations WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC"; 
$stmt = $db->prepare($select_table); 
$stmt->execute(); 
$rows = $stmt->fetch(PDO::FETCH_ASSOC); 
if ($rows) 
{ 
getcsv(array_keys($rows)); 
} 
while($rows) 
{ 
getcsv($rows); 
$rows = $stmt->fetch(PDO::FETCH_ASSOC); 
} 

如何在地球上可以我從rooms表上面的查詢中列number

+0

哪些表中的列'rooms'? – Webeng

+0

有如下幾點 \t ID,名稱,數量,速度來看,能力,地位 在保留表列ROOM_ID被下文稱以ID從房間表 – rodrix

+1

** WARNING **:當使用PDO,你應該使用預處理語句並提供任何用戶數據作爲單獨的參數,因爲在此代碼中有嚴重的[SQL注入漏洞](http://bobby-tables.com/)。切勿使用字符串插值或連接,而應使用[預先準備的語句](http://php.net/manual/en/pdo.prepared-statements.php)。有關此問題和其他問題的指導,請參閱[PHP正確方法](http://www.phptherightway.com/)。 – tadman

回答

2

Join房間表!

SELECT r.id, r.name, r.phone, r.email, r.address, r.country, r.adults, r.childs, r.purpose, 
     r.booking_type, r.remarks, r.checkin, r.checkout, r.room_id, r.status, r.paid, r.date, 
     rooms.number 
FROM reservations r 
JOIN rooms ON r.room_id = rooms.id 
WHERE DATE_FORMAT(r.date, '%Y-%m') = '$date' 
ORDER BY r.id DESC 

(我累了再輸入reservations遍地,所以我創建了一個表的別名r該表。)

+0

我收到空白數據隊友 – rodrix

+0

你以前沒有收到過嗎? – jarlh

+0

這兩個表我都得到了空白數據實際上它下載它作爲csv表,我得到空白數據什麼都沒有獲取 – rodrix

0

更改查詢通過連接兩個表,包括房間號:

$query = "SELECT id, name, phone, email, address, country, adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, status, paid, date , ro.number AS number FROM reservations AS r JOIN rooms AS ro ON r.room_id=ro.id WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC"; 

假設rooms表有一個id場和reservation.room_id是一個外鍵引用rooms.id查詢將正常工作。

+0

是的,你是對的,但得到空白的數據 – rodrix

+0

包括您的數據庫表的結構在您原來的職位 – dimlucas

+0

非常感謝您的幫助 – rodrix

0

你可以試試這個

SELECT rooms.number, reservations.id, name, phone, email, address, country, 
    adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, 
    status, paid, date FROM reservations left join rooms on reservations. room_id =rooms.id 
WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC 
相關問題