2016-05-20 8 views
1

だからここに私は必要な条件の短いにもかかわらず実行する必要が完璧に働いクエリです:SQLのIF

INSERT INTO content (`id`,`id_pages`,`content`, `date`) 
SELECT `id`, `id`, `content`, `date_modified` FROM `pages`; 

は、残念ながら、すべてのデータベースがそのようにいくつかの適切に同期されていないがテーブルに値が設定され、テーブルには値が設定されていません。

どうすればINSERTテーブルAからテーブルBのデータIFテーブルAは空ですか?

カップルのクエリは、私が試してみた:

IF (
SELECT count(id) FROM content='0', 
INTO content (`id`,`id_pages`,`content`, `date`) 
SELECT `id`, `id`, `content`, `date_modified` FROM `pages`) 

...など:

IF (SELECT count(id) FROM content)=0 
THEN (INSERT INTO content (`id`,`id_pages`,`content`, `date`) 
SELECT `id`, `id`, `content`, `date_modified` FROM `pages`); 
+0

ここでは、サンプルテーブルのデータが大きくなることがあります。 _relation_がどのデータが 'A'から' B'に引っ張られるのかを判断するためにどのような_relation_が使用されるのかを教えてください。 –

+0

@TimBiegeleisen質問がロジックと構文に関するもので、すべてのテーブルが同じ方法で空の場合、サンプルデータは重要ではないと思います - 行はありません。 –

+0

テーブルAが空であればテーブルAにテーブルBを挿入しますか?しかし、なぜ?私は混乱しています。 – KaeL

答えて

1

はこれを試してみてください:上記のINSERT文の

INSERT INTO content (`id`,`id_pages`,`content`, `date`) 
SELECT `id`, `id`, `content`, `date_modified` 
FROM `pages` 
WHERE NOT EXISTS (SELECT 1 FROM content) 

SELECTpagesレコードを返します。少なくともcontentテーブルに記録されています。

Demo with empty table | Demo with not empty table

+0

それは素晴らしい仕事でした、ジョルゴスありがとう! – John