自然加入mysql 5.6

时间:2017-10-10 14:41:50

标签: mysql join natural-join

我想看看一个国家赢了多少枚奖牌。所以我决定将表格www_result和www_country结合起来。它们具有共同的属性country_id。这是我的代码到目前为止,但我得到语法错误,我似乎无法找到原因。

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

提前谢谢

1 个答案:

答案 0 :(得分:1)

你只是输入错误的命令,然后执行JOIN,然后应用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)
;