2013-01-17 45 views
0

我有以下查詢語句:如何編寫多連接SQL查詢並獲取查詢結果,即使1個表缺少的連接排

$query_string = ' 
    SELECT customerID, lastName, firstName, companyName, email, citizenship, primaryLanguage 
    FROM customers 
    JOIN citizenships USING(citizenshipID) 
    JOIN languages USING(languageID) 
    JOIN paymentMethods USING(customerID) 
    WHERE customerID = "1" 
'; 

目前的客戶,公民和語言表的每個包含行和正確加入。我的查詢結果爲客戶#1返回1行。

paymentMethods表中目前不包含任何行。當我將paymentMethods的連接語法添加到查詢字符串時,我的查詢結果爲客戶#1返回0行。

我想加入paymentMethods,並且只有在paymentMethods表存在時才返回一行,否則不會返回任何客戶行。

我該如何調整我的JOIN語法才能實現?

謝謝。

回答

1

LEFT JOIN替換爲:

SELECT customerID, lastName, firstName, companyName, email, citizenship, primaryLanguage 
FROM customers 
JOIN citizenships 
USING (citizenshipID) 
JOIN languages 
USING (languageID) 
LEFT JOIN 
     paymentMethods 
USING (customerID) 
WHERE customerID = "1" 
+0

真棒......它的工作完美。謝謝@Quassnoi –

1
$query_string = ' 
    SELECT customerID, lastName, firstName, companyName, email, citizenship, primaryLanguage 
    FROM customers 
    JOIN citizenships USING(citizenshipID) 
    JOIN languages USING(primaryLanguageID) 
    LEFT JOIN paymentMethids USING(customerID) 
    WHERE customerID = "1" 
'; 
+0

真棒...它完美的工作。謝謝@ChrisC –