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
// 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_id と country_name) を country_table から選択するにはどうすればよいですか?」

必要な結果を得るには、いくつかのコード (PHP など) を作成する必要があると思います。問題は、テーブルにないデータ (例: country_name) を表示できないことです。このデータがわからないため、これは不可能です。これはあなたが持っている唯一のデータであるため、テーブルではなく配列にあるcountry_idを表示する唯一の可能性があります...

于 2015-05-22T13:58:56.477 に答える
0

これがSQLです。

select country_id, country_name from table where country_id not in ('ES','DE','GB');
于 2012-12-05T03:04:49.470 に答える