2015-07-20 102 views
0
$sql = "SELECT distinct `customer_id` FROM(SELECT * FROM `booking` WHERE `confirmed` = 1 ORDER BY `reserve_date` DESC) as inv"; 
$query = $this->db->query($sql); 

完美運行在笨文件的模型PHP CMS的SQL檢索數據關係

有一列名爲「客戶」表命名爲「名」 想訂購由$query獲得的data(customer_id)場名爲「客戶」表中的「名」,並將其存儲在$result 那麼,做什麼都我$result

想怎麼辦呢 - 請幫我 - 是新來的笨和PHP。非常感謝。

+0

你的問題是模糊的,請寫正確。 –

+0

-什麼不明白 - – WebSuccess

+0

- 請告訴我 - 其他人瞭解 - – WebSuccess

回答

1

加入客戶表並按名稱排序。

SELECT DISTINCT 
    customer_id 
FROM 
    (SELECT 
     * 
    FROM 
     booking 
    WHERE 
     confirmed = 1 
    ORDER BY reserve_date DESC) AS inv 
     INNER JOIN 
    customer AS cu ON cu.id = inv.customer_id 
ORDER BY cu.name 

如果你永遠也不會從「預訂」 subquerying使用限制你可以通過

ORDER BY null 

更換

ORDER BY reserve_date DESC 

優化它,然後你甚至可以重寫查詢成爲

SELECT DISTINCT 
    inv.customer_id 
FROM 
    booking AS inv 
     INNER JOIN 
    customer AS cu ON cu.id = inv.customer_id 
WHERE 
    inv.confirmed = 1 
ORDER BY cu.name; 

不要忘記在id, customer_id, confirmed and name列上建立必要的索引。

+0

如何索引亞歷山大 - 謝謝 – WebSuccess

+0

http://www.databasejournal.com/features/mysql/article.php/1382791/Optimizing-MySQL-Queries-and-Indexes.htm 接受答案我回答了你的問題:) –

+0

@websuccess這看起來像正確的答案 – Orangepill

0

$ SQL = SELECT DISTINCT booking.customer_id 從預訂 INNER JOIN客戶ON booking.customer_id = customer.customer_id WHERE confirmed = 1個 ORDER BY customer.name