destinationcountryid
の値が638,101、-1のようなレコードがテーブルにあります。 selectクエリに一致しないものがこのレコードを返す必要がある場合、-1がデフォルト値です。SQLクエリを記述して他のものが見つからない場合に選択する方法
私は以下のSQLクエリを書いています。
SELECT
externalid
FROM
mLookup.Addon_Spec_Tbl
WHERE
productid = 30046 AND keyid = 2 AND countryid = 638 AND clientid = 10018 AND subkeyid = 4 AND destinationcountryid IN(302,
-1)
ORDER BY
id DESC
LIMIT 1
ここでは正しい結果が得られません。 私のテーブルスキーマは、私が応答を取得しますが、そのdestinationcountryid = -1のレコードを返しています
INSERT INTO spec_tbl(
productid, keyid, subkeyid, externalid, countryid, destinationcountryid, originid, destinationid, clientid, categoryid, remarks)
VALUES
(30046, 2, 4 , 'ABC', 638, 603, NULL, NULL, 10018, 25,'International Round Trip(include India) One Way Trip'),
(30046, 2, 4 , 'LMP', 638, 302, NULL, NULL, 10018, 25,'International Round Trip(include Bangladesh) One Way Trip'),
(30046, 2, 4 , 'KJP', 638, 208, NULL, NULL, 10018, 25,'International Round Trip(include Cuba) One Way Trip')
(30046, 2, 4 , 'XYZ', 638, -1, NULL, NULL, 10018, 25,'International Round Trip'),
;
挿入
CREATE TABLE spec_tbl(
id SERIAL NOT NULL,
productid INTEGER NOT NULL,
keyid INTEGER,
subkeyid INTEGER,
externalid CHARACTER VARYING(100),
countryid INTEGER,
destinationcountryid INTEGER,
originid INTEGER,
destinationid INTEGER,
clientid INTEGER,
categoryid INTEGER,
created TIMESTAMP WITHOUT TIME zone DEFAULT NOW(),
modified TIMESTAMP WITHOUT TIME zone DEFAULT NOW(),
enabled BOOLEAN DEFAULT TRUE,
CONSTRAINT spec_tbl_pkey PRIMARY KEY(id))
サンプル以下の通りです。 が見つかりましたが、現在のdestinationcountryid = 302と一致しています。これを結果に期待します。
私はあなたがここで何を求めているのか分かりません。そのクエリがレコードを返さず、ロジックが正しいことを100%確信している場合は、データが問題になります。いずれにしても、期待される出力とともにサンプルデータを表示して質問を言い換えることができれば、それは事柄を明確にするのに役立ちます。 –
サンプルレコードを追加しました –
私はそれがMySQLであると推測しています。タグで特定してください。 – PacoDePaco