2017-10-10 74 views
-4

我想看看一個國家贏得了多少枚獎牌。所以我決定合併表www_result和www_country。它們具有共同的屬性country_id。這是我的代碼到目前爲止,但我得到語法錯誤,我似乎無法找到原因。Natural join mysql 5.6

SELECT * FROM www_results WHERE position = 1 OR position = 2 OR position = 3 
NATURAL JOIN 
www_countries; 

預先感謝您

+0

你正在得到什麼錯誤?發佈那些 –

+0

也許參數的順序是錯誤的。儘管我從來沒有使用過自然連接,但是我建議你嘗試一下'SELECT * FROM www_results NATURAL JOIN www_countries WHERE position <= 3;' –

回答

1

你只要有事情在錯誤的順序,請加入然後應用WHERE子句...

你也應該指定你指的是時表引用一個字段名稱。這並不總是必要的,但它使得它更易讀並且不易出錯。

SELECT 
    * 
FROM 
    www_results 
NATURAL JOIN 
    www_countries 
WHERE 
    www_results.position IN (1, 2, 3) 
; 

我也實際上建議反對NATURAL JOIN任何方式。如果你偶然有同名的字段,你會得到不需要的行爲。我會使用明確的INNER JOIN s。

SELECT 
    * 
FROM 
    www_results 
INNER JOIN 
    www_countries 
     ON www_results.country_id = www_countries.country_id 
     -- Replace the "country_id" with whatever field you want to join on 
WHERE 
    www_results.position IN (1, 2, 3) 
;