0

INSERT クエリを作成したいのですが、タイトルのように - tab2 にレコードがない場合のみです。次に、クエリは null 値を持つ tab1 レコードを追加します。変えたい。tab2 にレコードがない場合、クエリは tab1 にレコードを追加しません。どうすればいいですか?

現在、クエリは次のようになっています。

INSERT INTO `tab1` (SELECT `id`, `value`, `another_value` FROM `tab2`);

さて、私は何かを説明します。

私はtab2を持っていますtab2status=1 の場合、このレコードは にコピーされtab1ます。ただし、tab2レコードがない場合は、レコードtab1が追加されます。ここで、idは以前よりも次の値でidあり、他の値は 0 または NULL です。変更したいのですが、レコードがない場合tab2、クエリは空のレコードをに追加しませんtab1

私の本当のクエリは次のとおりです。

INSERT INTO `troops_support` (SELECT NULL AS `id`, `from`, `fromType`, `to`, `toType`, GROUP_CONCAT(`army` SEPARATOR ":") FROM `army_actions` WHERE `type`=0 AND (`start`+`duration`)<=UNIX_TIMESTAMP());
4

2 に答える 2

0

次のようなものを試すことができます:

If SELECT COUNT(*) FROM table_2 > 0
BEGIN
INSERT INTO table_1
SELECT case when table_2_column_1 IS NOT NULL 
             THEN table_2_column_1
             else '' 
   END AS table_1_column1,
   case when table_2_column_2 IS NOT NULL 
             THEN table_2_column_2
             else '' 
   END AS table_1_column2
FROM table_2
END
于 2013-11-01T20:08:08.367 に答える