2017-10-10 64 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) 
;