SQL查询CREATE TABLE在多个条件下

时间:2014-03-31 20:12:12

标签: sql database conditional-statements

我正在尝试对存在值的大表进行重复数据删除,但会分成几行。

例如:

表1:Client_Code,帐号#,名字和姓氏,地址。

表2:Client_Code,帐号#,名字和姓氏,地址,TAX_ID。

现在我想做的事情在这一点上看起来非常明显。

我希望我的结果从表1中提取到新表中,并且查询为“从表1中选择,表1中的客户端代码和帐户#与表2中的客户端代码和帐户#匹配” TAble 2填充了所有值,表1包含除TAX ID之外的所有值。

我试过的代码看起来像这样。

CREATE TABLE Dedupe_1 AS SELECT * FROM `TABLE 1`
WHERE `TABLE 1`.`Client_Code`=`TABLE 2`.`Client_Code`
AND
WHERE `TABLE 1`.`account#`=`TABLE 2`.`account#`
ORDER BY `TABLE 2`.`account#`

我一直收到语法错误。我对这种编程语言很陌生,所以如果这个问题很难理解我会道歉。

我只是觉得我可以通过简单地使用'WHERE'语句来调用另一个表中的字段。

2 个答案:

答案 0 :(得分:0)

您可能希望使用Join来连接两个表。您可以在两个表中使用公共列来表示Join语句。常用语法如

SELECT table1.column1, table2.column 2 and as many you want in common table
FROM table1 name
INNER JOIN table2 name
ON table1.commoncolumn=table2.Common column;

您可以了解有关加入here的更多信息。

答案 1 :(得分:0)

我想你想使用exists条款:

CREATE TABLE Dedupe_1 AS
    SELECT *
    FROM `TABLE 1` t1
    WHERE EXISTS (select 1
                  from table2 t2
                  where t2.Client_Code = t1.Client_Code and t2.`account#` = t1.`account#`
                 );