将一个表上的查询结果插入另一个表中

时间:2015-05-15 16:04:41

标签: mysql

在MySQL中

我有一个名为tasks的表,我想选择两列(keyid和proyect)。这些对可能会重复,所以我只想选择每种组合中的一种。

然后我想将结果插入到用户和第二个表的proyect中。

任何人都可以提供完成此操作的语法吗?

3 个答案:

答案 0 :(得分:2)

我不完全确定你们每个人的意思,但我猜你想要的是:

  INSERT 
    INTO table2 (keyid,proyect)
  SELECT keyid, proyect 
    FROM table1
GROUP BY keyid, proyect

或者

DISTINCT

在这种情况下我个人更喜欢GROUP BY,因为这就是你提出问题的方式。我倾向于仅在必要时或在尝试从概念上创建群组时使用<liferay-util:include page="list.jsp"> <liferay-util:param name="list" value="${productList}" /> </liferay-util:include>

这很容易在网上找到; INSERT ... SELECT Syntax

答案 1 :(得分:1)

您没有说明如何过滤源数据。 您需要在SELECT的末尾添加WHERE子句以帮助限制数据。

private void newDisabilityActionPerformed(java.awt.event.ActionEvent evt){                                                  
    newDisability new= new newDisability();
    if (new.flag==true){
        disability = new.name;
    }
}      

答案 2 :(得分:1)

它被称为 public string Encryptdata(string password) { string strmsg = string.Empty; byte[] encode = new byte[password.Length]; encode = Encoding.UTF8.GetBytes(password); strmsg = Convert.ToBase64String(encode); return strmsg; } public string Decryptdata(string encryptpwd) { string decryptpwd = string.Empty; UTF8Encoding encodepwd = new UTF8Encoding(); Decoder Decode = encodepwd.GetDecoder(); byte[] todecode_byte = Convert.FromBase64String(encryptpwd); int charCount = Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length); char[] decoded_char = new char[charCount]; Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0); decryptpwd = new String(decoded_char); return decryptpwd; }

<a class="class1 class2" href="#">Link</a>

确保按照INSERT SELECTINSERT INTO table2 (user, proyect) SELECT keyid, proyect FROM tasks LIMIT 1 中的相同顺序按顺序列出列。 INSERT只返回一条记录。您可以在SELECT上添加LIMIT 1或删除/更改限制以满足您的需求。