我有4个包含数据的mysql表。每个表都有相同的列,名称和类型以及所有内容,只有数据会更改。每个表具有不同数量的记录,因为每个表代表不同的年份。因此是2015、2016、2017和2018年的表格。这些表格包含有关公司及其欠政府服务资金的数据。因此,每个表都具有几乎相同的数据,但有一些更改(某些公司已付款)。我想创建将这些表与额外的列等结合的第五张表。2015年的表具有一列用于表示拥有量,一列用于银行付款代码,与另一张表相同,我希望在第五张表中具有列对于所有支付金额的所有年份,其余的保持不变。 我该怎么做? 谢谢。
CREATE TABLE `2015` (
`id2015` int(11) NOT NULL AUTO_INCREMENT,
`eponymia` varchar(200) DEFAULT NULL,
`afm` varchar(45) DEFAULT NULL,
`gemi` varchar(45) DEFAULT NULL,
`nomiki_morfi` varchar(45) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`amount` varchar(45) DEFAULT NULL,
`payment_code` varchar(45) DEFAULT NULL,
`chamber_reg` varchar(45) DEFAULT NULL,
`tmima` varchar(45) DEFAULT NULL,
`dimos` varchar(45) DEFAULT NULL,
`city` varchar(45) DEFAULT NULL,
`street` varchar(45) DEFAULT NULL,
`number` varchar(45) DEFAULT NULL,
`tk` varchar(45) DEFAULT NULL,
`phone` varchar(45) DEFAULT NULL,
`mobile` varchar(45) DEFAULT NULL,
`fax` varchar(45) DEFAULT NULL,
`email` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id2015`)
) ENGINE=MyISAM AUTO_INCREMENT=7735 DEFAULT CHARSET=utf8
这是其中一个表的架构,其他表相同 而我要填写的表格的模式是这个
CREATE TABLE `all_years` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`eponymia` varchar(240) DEFAULT NULL,
`amount_2015` varchar(40) DEFAULT NULL,
`amount_2016` varchar(40) DEFAULT NULL,
`amount_2017` varchar(40) DEFAULT NULL,
`amount_2018` varchar(40) DEFAULT NULL,
`kodikos_2015` varchar(40) DEFAULT NULL,
`kodikos_2016` varchar(40) DEFAULT NULL,
`kodikos_2017` varchar(40) DEFAULT NULL,
`kodikos_2018` varchar(40) DEFAULT NULL,
`dimos` varchar(40) DEFAULT NULL,
`city` varchar(40) DEFAULT NULL,
`street` varchar(40) DEFAULT NULL,
`number` varchar(40) DEFAULT NULL,
`tk` varchar(40) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `all_years_id_uindex` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1686615 DEFAULT CHARSET=utf8
我希望列“ amount_2015”和“ kodikos_2015”包含2015年表中的数据,依此类推。 这是数据的一个例子
81 "company name" 020587798 2036001000 ΑΤΟΜΙΚΗ Ενεργή 30.00 00200000196546264229 "VAT" Εμπορικό ΚΥΠΑΡΙΣΣΙΑΣ / ΜΕΣΣΗΝΙΑΣ ΚΥΠΑΡΙΣΣΙΑ ΑΡΜΕΝΙΟΙ 24500 2761024466
82 "company name" 129915690 14689845000 ΑΤΟΜΙΚΗ Ενεργή 30.00 00200000100549364229 "VAT" Υπηρεσιών ΛΕΥΚΤΡΟΥ / ΜΕΣΣΗΝΙΑΣ ΠΥΡΓΟΣ ΛΕΥΚΤΡΟΥ 24024
83 "company name" 302641263 14690945000 ΑΤΟΜΙΚΗ Ενεργή 30.00 00200000212785864222 "VAT" Επαγγελματιών ΦΙΛΙΑΤΡΩΝ / ΜΕΣΣΗΝΙΑΣ ΦΙΛΙΑΤΡΑ ΚΕΝΤΡΙΚΗ ΠΛΑΤΕΙΑ 24300
84 "company name" 800171859 14691745000 ΕΕ Λύση - Εκκαθάριση 80.00 00200000212787664228 "VAT" Εμπορικό ΑΥΛΩΝΑ / ΜΕΣΣΗΝΙΑΣ ΚΥΠΑΡΙΣΣΙΑ 1 ΧΙΛ ΚΑΛΟΥ ΝΕΡΟΥ - ΤΣΑΚΩΝΑΣ 0 24500
85 "company name" 110084982 14692445000 ΑΤΟΜΙΚΗ Ενεργή 30.00 00200000212789664228 "VAT" Μεταποιητικό ΦΙΛΙΑΤΡΩΝ / ΜΕΣΣΗΝΙΑΣ ΦΙΛΙΑΤΡΑ 24300
我也不完全确定此网站的工作方式,因此,如果我做一些愚蠢的事情,可以给我一点时间,我会解决的。
答案 0 :(得分:0)
这是address_box.post { address_box.text="my text"}
的工作。
尝试这样的事情。
UNION ALL
使用 SELECT 2015 AS year, company, owed, payment, paymentcode FROM tbl2015
UNION ALL
SELECT 2014 AS year, company, owed, 0 AS payment, '' AS paymentcode FROM tbl2014
UNION ALL
SELECT 2013 AS year, company, owed, 0 payment, '' paymentcode FROM tbl2013
或UNION ALL
时,联合中的每个结果集必须具有相同的列数。我写了UNION
,将伪造的列放到表中没有伪列的联合结果集中。