从一个表中选择并插入另一个表

时间:2010-03-04 07:36:38

标签: sql mysql

我有两张桌子。

  

Table_A(nid,vid,type,title,uid)

     

Table_B(id,questiontext)

我需要将Table_B中的记录插入Table_A。我试过这个:

INSERT INTO Table_A (nid, vid, type, title, uid)
VALUES ('', '', multichoice', (SELECT questiontext from Table_B), '1')

但它正在抛出错误。

正确的陈述应该是什么?

UPD:我应该补充一点,nid是自动增量,vid的值应该与nid相同。

7 个答案:

答案 0 :(得分:51)

你试过吗

INSERT INTO Table_A (nid, vid, type, title, uid) 
SELECT  '', 
        '', 
        'multichoice', 
        questiontext ,
        '1'
from    Table_B

查看INSERT ... SELECT Syntax

答案 1 :(得分:9)

您应该使用以下SQL查询:

INSERT INTO Target(A, B, C)
  SELECT A, B, C
    FROM Source

答案 2 :(得分:6)

根据MySQL reference for INSERT SELECT

INSERT INTO table_name SELECT FROM other_table [ WHERE ... something ... ]

答案 3 :(得分:0)

使用此方法

  

INSERT INTO目的地(列名)(从示例3中选择columnaes);

     

这里的列应该是相同的类型。

答案 4 :(得分:0)

insert into table2(columnname)select columnname from table1

答案 5 :(得分:0)

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
    final CustomMainListAdapter.mainHolder mainHolder= (CustomMainListAdapter.mainHolder) holder;

    if (mainList.get(position).getArrayType().equals("sub1")) {
        if (mainList.get(position).getsub1Array() != null) {
            if (mainList.get(position).getsub1Array().size() > 0) {

                mainHolder.text_mainTitle.setText(mainList.get(position).getsub1Array().get(position).getsub1Title());
                mainHolder.text_mainsubTitle.setText(mainList.get(position).getsub1Array().get(position).getsub1Product());
                mainHolder.text_main_contact.setText(mainList.get(position).getsub1Array().get(position).getsub1phoneNumber());

            }
        }
    }
    else {

        if (mainList.get(position).getsub2Array() != null) {
            if (mainList.get(position).getsub2Array().size() > 0) {
                Log.e("tag","main-adapter size: "+mainList.get(position).getsub2Array().size());

                for(int i=0;i<mainList.get(position).getsub2Array()().size();i++ ){
                    mainHolder.text_mainTitle.setText(mainList.get(position).getsub2Array()().get(i).getName());
                    mainHolder.text_mainsubTitle.setText(mainList.get(position).getsub2Array()().get(i).getProductTask());
                    mainHolder.text_main_contact.setText(mainList.get(position).getsub2Array()().get(i).getContact());
                }
            }
        }
    }
}

您还可以通过以下方式设置一些插入条件:

INSERT INTO Table_1 (column_1, column_2, column_3)
SELECT column_1, column_2, column_3
FROM Table_2

答案 6 :(得分:-1)

我认为对此的正确答案可能是选择,从我从其他答案中看到的是你们在从表B获取值之前插入,因为你应该首先得到的值是:从表B中选择然后插入表A.您应该在select into

的行中搜索