INNER JOIN 语句 returns 多行而不是一行
INNER JOIN Statement returns multiple rows instead of one
有两个table,即sku
和country
,没有任何匹配的列。我需要根据 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)
有两个table,即sku
和country
,没有任何匹配的列。我需要根据 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)