2012-05-16 10 views
0

두 개의 테이블이 있습니다.Mysql 표 1의 각 행에 대해 표 2의 INSERT 데이터

표 A는 질문 유형별로 필터링해야하는 질문 목록입니다. 예 : SELECT * from TableA WHERE Qtype = "뭐든간에"

TableA에 대한 쿼리에서 가져온 각 레코드에 대해 표 B에 4 개의 새 레코드를 추가해야합니다. TableA.id = TableB.questionid

나는 내가 추가 할 각 레코드에 대해 한 번, 그것을 네 번 실행해야합니다 추정하고 -

표 A 및 표 B는 ID 번호에 가입 할 수 있습니다.

내가 어떤 도움을 주셔서 감사합니다겠습니까

가입 내부와 함께 각 명령에 대한에 혼란스러워지고 있어요! 나는, 나는 아직도 완전히 당신의 질문을 이해하지 못하는 두려워

INSERT INTO TableB (questionid, otherfieldB) 
VALUES (
    SELECT id, otherfieldA 
    FROM TableA 
    WHERE Qtype = "whatever" 
) 
+0

'TableB'에서 원하는 데이터는 무엇입니까? –

+0

TableB에 새 데이터가 필요합니다. 따라서 표 1에서 가져온 각 레코드에 대해 테이블 ​​1의 ID 번호와 다른 열의 다음 텍스트가있는 새 레코드가 표 2에 삽입됩니다. 예 : Table1 레코드는 id, 1 qtype, 무엇이든간에 Table2 새 레코드가 questionid, 1 (table1.id에서 가져옴) newfield, "excellent"를 읽습니다. – user1399145

+0

http://stackoverflow.com/questions/3576293/mysql-triggers-insert -into-another-table –

답변

2

이 4 번 시도 :

INSERT INTO TableB (ID, newfield) (
    SELECT a.ID, n.newfield 
    FROM (
    SELECT 'Excellent' AS newfield UNION ALL 
    SELECT 'Something' UNION ALL 
    SELECT 'Something else' 
) n 
    CROSS JOIN TableA a 
) 
+0

이렇게 가까이 있지만 otherfieldB는 TableA에없는 새로운 데이터로 채워집니다. – user1399145

+1

INSERT INTO TableB (questionid, otherfieldB) SELECT ID, otherfieldA, "CustomValue" FROM TableA WHERE Qtype = "무엇이든지" – marcocassisa

3

을하지만이 newfield에 대한 세 가지 다른 값으로, TableA의 각 레코드에 대해 TableB에 세 개의 레코드를 삽입합니다 :

관련 문제