2

我有一张表 ( country_table),其中列出了所有国家/地区及其各自的 ID。

|country_id|country_name|
|ES        |Spain       |
.
.
.

我有一个数组,使用它从另一个表中获取fetch_array,如下所示:

$array = Array(
    [0]=>Array([country_id]=>'ES')
    [1]=>Array([country_id]=>'DE')
    [2]=>Array([country_id]=>'GB'))

如何从中选择country_table不存在于表中但存在于数组中的记录(country_id 和 country_name)?

4

4 回答 4

2
$sql ="SELECT country_id, country_name FROM country_table
       WHERE country_id NOT IN (". implode(",", $array) .")";

implode()函数将生成数组元素的逗号分隔字符串表示。

于 2012-12-05T03:11:07.010 回答
0

这是sql。

select country_id, country_name from table where country_id not in ('ES','DE','GB');
于 2012-12-05T03:04:49.470 回答
0
// gather unwanted id's first
$notInIds = array();
foreach ($array as $arr) $notInIds[] = $arr['country_id'];

// prepare query
$query = 'SELECT `country_id`, `country_name` FROM `your_table`
WHERE `country_id` NOT IN (' . implode(',',$notInIds) . ')';

// then execute it
于 2012-12-05T03:33:32.183 回答
0

对于这个问题:“如何从 country_table中选择表中存在数组中存在的记录(country_id 和 country_name) ?”

我想你必须编写一些代码(例如在 PHP 中)才能达到你想要的结果。问题是您无法显示不在表格中的数据(例如 country_name),这是不可能的,因为您不知道这些数据。唯一的可能性是显示数组中而不是表中的 country_id,因为这是您拥有的唯一数据...

于 2015-05-22T13:58:56.477 回答