【问题标题】:Natural join mysql 5.6自然加入mysql 5.6
【发布时间】:2017-10-10 14:41:50
【问题描述】:

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

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

提前谢谢你

【问题讨论】:

  • 您遇到了什么错误?发布那些
  • 也许参数的顺序是错误的。虽然我从来没有使用过自然连接,但我建议你试试SELECT * FROM www_results NATURAL JOIN www_countries WHERE position <= 3;

标签: mysql join natural-join


【解决方案1】:

您只是顺序错误,执行 JOIN,然后应用 WHERE 子句...

您还应该在引用字段名称时指定要引用的表。这并不总是必要的,但可以使其更具可读性且不易出现错误。

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

我实际上也建议以任何方式反对NATURAL JOIN。如果你偶然有同名的字段,你会得到不需要的行为。我会使用明确的INNER JOINs。

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)
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2016-04-20
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多