1

次のクエリを 1 つまたは 2 つの大きなクエリに結合したいと考えています。

SELECT user, password, email FROM users WHERE user = 'njp316' LIMIT 1;

INSERT IGNORE INTO collectors_users (username, password, email, dateadded, subscribed)
VALUES (user, password, email, NOW(), 'Y');

これは複数の行を引き戻すため、ループする必要があります。

SELECT barcode FROM collections WHERE user = user;

INSERT IGNORE INTO collections_collections (username, barcode)
VALUES (user, barcode);

明らかに、私は SQL に詳しくないので、助けを求めているだけです。ありがとう。

4

3 に答える 3

3

私が何かを見逃していない限り...これは非常に簡単です:

INSERT IGNORE INTO collectors_users
(username, password, email, dateadded, subscribed)
SELECT user, password, email, NOW(), 'Y'
FROM users 
WHERE user = 'njp316' 
LIMIT 1;

INSERT IGNORE INTO collections_collections 
(username, barcode)
SELECT user, barcode 
FROM collections 
WHERE user = user;
于 2013-01-11T19:57:33.823 に答える
0

副選択を使用できます。

INSERT INTO collectors_users (username, password, email, dateadded, subscribed)
SELECT user, password, email, NOW(), 'Y' FROM users WHERE user='njp316' LIMIT 1;

SELECT をデータのソースとして使用し、INSERT に注ぎます。列の順序が重要であることに注意してください。

于 2013-01-11T19:57:33.723 に答える
0

これを試して:

INSERT IGNORE INTO collectors_users (username, `password`, email, dateadded, subscribed) 
SELECT `user`, `password`, email, NOW(), 'Y' 
FROM users WHERE `user` = 'njp316' LIMIT 1;

INSERT IGNORE INTO collections_collections (username, barcode) 
SELECT `user`,barcode 
FROM collections WHERE `user` = 'njp316';
于 2013-01-11T20:02:27.687 に答える