2011-03-06 121 views
0

我有以下查詢(在我看來)是遠遠超過它需要的,包含可以合併的語句。麻煩的是,我不知道該怎麼做:)如何改進此查詢?

有沒有什麼辦法可以改善這個,讓它變得更好?

SELECT `Date`, `Time`, 

    (SELECT `Buyer Name` 
    FROM [Potential Buyer] 
    WHERE `Buyer No` = [Viewing Appointment].`Buyer No`) AS 'Buyer Name', 

    (SELECT `Name` 
     FROM [Seller] 
     WHERE `Seller No` = (SELECT `Seller No` 
          FROM [Sale Property] 
          WHERE `Property Code` = [Viewing Appointment].`Property Code`)) AS 'Seller Name', 

    (SELECT `Address` 
     FROM [Sale Property] 
     WHERE `Property Code` = [Viewing Appointment].`Property Code`) AS 'Property Address', 

     (SELECT `Name` 
     FROM [Staff Member] 
     WHERE `Staff ID` = [Viewing Appointment].`Staff Appointed`) AS 'Staff Members Name' 

FROM [Viewing Appointment] 

此外,當前選擇的字段的順序是日期,時間,買方名稱,賣方名稱,物業地址,員工姓名。無論如何,我可以改變這個順序嗎?

謝謝。

+1

我爲什麼不明你想刪除你的問題。從編輯歷史中可以看出,你被編輯你的問題的其他人激怒了。這就是它在這裏的作用。像維基百科一樣,這個網站是合作編輯的,並且所有的編輯都被跟蹤。如果您對由其他可信用戶編輯的問題和答案不滿意,則可能不是您的網站。 – 2011-03-07 06:05:02

+0

另外,當你發佈一個問題時,你將它授權給社區,除非有一個令人信服的理由,否則刪除它並不是一件好事。有關更多信息,請參閱http://stackoverflow.com/faq。 – 2011-03-07 06:06:42

回答

0

是的,看着加入

調整你的SQL如下:

SELECT 
[Viewing Appointment].`Date`, 
[Viewing Appointment].`Time`, 
[Potential Buyer].`Buyer Name`, 
Seller.Name, 
[Sale Property].Address, 
[Staff Member].Name 

FROM [Viewing Appointment] 

LEFT JOIN [Potential Buyer] ON [Potential Buyer].`Buyer No` = [Viewing Appointment].`Buyer No` 
LEFT JOIN [Sale Property].`Property Code` = [Viewing Appointment].`Property Code` 
LEFT JOIN Seller ON Seller.`Seller No` = [Sale Property].`Seller No` 
LEFT JOIN [Staff Member] ON [Staff Member].`Staff ID` = [Viewing Appointment].`Staff Appointed` 

您只需通過以不同的順序選擇它們改變字段的順序