当我试图将值从一个表导入到另一个表时,并不能得到所有的结果。示例,请参阅下面的代码,其中我要求:
JOIN transaction ON transaction.invoice = invoicing.invoice有时,我有2或3张发票号码相同的发票和更新只发生在第一个发票号码,跳过其他与相同的发票号码。
我需要所有发票,包括复制件。
UPDATE invoicing
JOIN transaction ON transaction.invoice = invoicing.invoice
SET invoicing.raison = transaction.transaction, invoicing.description =
transaction.description, invoicing.voyage_passenger = transaction.voyage_passenger我遗漏了什么?
编辑:
表交易:
|num |date |invoice |type |transaction |amount |description
|886051 |1375381803 |859532 |A |carte |7.00 |bla bla desc1
|886052 |1375381809 |859532 |P |repro |0.00 |bla bla desc2表输入-有大约8列以上的表没有注意到下面。再次,我只是需要从上面的第二行的信息,也包括在下表中的新行。我现在还意识到,插入这些重复的行需要插入,而不是更新。
|num |date |invoice |type |raison |amount |description |clientID
|951100 |1375381803 |859532 |A |carte |7.00 |bla bla desc1 |121212
|951101 |1375401111 |859533 |A |carte |7.00 |bla different |222444谢谢你的帮助。
发布于 2013-08-09 15:13:32
不知道如何处理ClientId。根据您的样本数据,发票可能在不同的日期,所以我不确定不同日期发票的ClientId是否相同。
insert into invoicing (`num`, `date`, `invoice`, `type`,
`raison`, `amount`, `description`)
select `num`, `date`, `invoice`, `type`, `transaction`, `amount`, `description`
from Transaction t
where not exists
( select `num` from invoicing i
where
i.`num`=t.`num`
and i.`date`=t.`date`
and i.`invoice`=t.`invoice`
and i.`type`=t.`type`
and i.`raison`=t.`transaction`
and i.`amount`=t.`amount`
and i.`description`=t.`description`
)SQLFiddle演示
发布于 2013-08-09 15:17:43
连接中的第一个表中的发票号可能不存在于第二个table.Why中,而不是左联接中?
https://stackoverflow.com/questions/18148605
复制相似问题