INNER JOIN 语句 returns 多行而不是一行

INNER JOIN Statement returns multiple rows instead of one

有两个table,即skucountry,没有任何匹配的列。我需要根据 sku table 中 c_code 的值从国家 table 检索一个唯一字段 printable_name。 c_code 列有多个相同的国家代码(例如:124),而国家 table 中的 numcode 列包含相同的国家代码但只有一次,因为它是一个唯一字段。具有唯一 numcode 的行具有我最终要检索的国家/地区名称。下面我的 SQL 查询的结果给出了多行,而不是仅来自国家 table 的一行。我只想要来自国家 table 的一条记录,即 printable_name

我正在尝试将以下 SQL 与 JOIN 语句合并为一个。

$vendor_sku = $my_line_item['sku'];
                        
                        // Build SQL to retrieve country name.
                        $sql = "SELECT c_code FROM sku WHERE item_sku = '" . $vendor_sku . "'";
                        $sql = "SELECT printable_name FROM country WHERE numcode = '" . $c_code . "'";

SELECT country.printable_name
  FROM country INNER JOIN sku ON country.numcode = sku.c_code
 WHERE country.numcode = "124"

我的国家 table 的一部分是:

部分 sku table 是:

国家 table 只有一个 numcode 124 条目,如下所示。

I just want the record only from country table

那你为什么要使用 sku table?

SELECT c.printable_name
FROM country c
WHERE c.numcode = 124;

注意:我假设 124 是一个 数字,所以我删除了引号。如果是字符串,则使用带单引号的字符串,'124'.

尝试:

SELECT a.printable_name
  FROM country a
 WHERE
 1=1
 and a.numcode = '124'
 and exists (select 1 from sku s where a.numcode = s.c_code)