Potrebujem prekopirovat niektore data medzi dvoma tabulkami, ale......,
v tabulke items je napriklad id1, v tabulke biblio sa nachadza id2, su to rozdielne hodnoty. id1 a id2 su ale uvedene v poliach tretej tabulky, napriklad:
id1 id2
11279 1
11280 2
11281 3
select a.id1, c.id2 from a, b, c where a.id1=c.id1and b.id2=c.id2
Pri dotaze:
INSERT INTO biblio( author )
SELECT marc_subfield_table.subfieldvalue
FROM biblio, marc_subfield_table, marc_biblio
WHERE biblio.biblionumber = marc_biblio.biblionumber
AND marc_subfield_table.bibid = marc_biblio.bibid
AND marc_subfield_table.bibid =11280
AND marc_subfield_table.tag =700
mi vsak vypisuje nasledovnu chybu:
MySQL hlási: Dokumentácia
#1062 - Duplicate entry '0' for key 1
Da sa s tym nieco urobit?
SHOW INDEXES FROM `biblio`;
Čo vypíše ako prvý riadok?
Ked som skusal:
UPDATE `biblio` SET `author` = 'test' WHERE `biblio`.`biblionumber` =2
tak to preslo. fakt nechapem... .
INSERT INTO biblio( `biblionumber` , `author` )
SELECT MAX( `biblio`.`biblionumber` ) +1, marc_subfield_table.subfieldvalue
FROM biblio, marc_subfield_table, marc_biblio
WHERE biblio.biblionumber = marc_biblio.biblionumber
AND marc_subfield_table.bibid = marc_biblio.bibid
AND marc_subfield_table.bibid =11281
AND marc_subfield_table.tag =700
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
tabulka uz obsahuje okolo 4500 zaznamov, ale pole author (a mnoho dalsich) je zatial prazdnych.
Primary key smie byt max 1x! Co znamena, ze bud treba vkladat biblionumber alebo nastavit biblionumber ako auto_increment.
select id, count(*) as how_many_times from tab having count(*) > 1
ale či to funguje aj v MySQL, no za pár rokov sa mohlo zmeniť všeličo.