我想看看一个国家赢得了多少奖牌。所以我决定合并表 www_result 和 www_country。它们具有共同的 country_id 属性。到目前为止,这是我的代码,但出现语法错误,我似乎找不到原因。
SELECT * FROM www_results WHERE position = 1 OR position = 2 OR position = 3
NATURAL JOIN
www_countries;
先感谢您
我想看看一个国家赢得了多少奖牌。所以我决定合并表 www_result 和 www_country。它们具有共同的 country_id 属性。到目前为止,这是我的代码,但出现语法错误,我似乎找不到原因。
SELECT * FROM www_results WHERE position = 1 OR position = 2 OR position = 3
NATURAL JOIN
www_countries;
先感谢您
您只是顺序错误,执行 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)
;