sers Leute,
ich habe ein kleines Problem bei dem ich entweder zu doof bin oder es so genial einfach
ist, dass ich wieder den Wald vor lauter Bäumen nicht sehe.
Bevor ich mein Problem beschreibe umreise ich noch kurz die Vorraussetzungen:
Ich habe die beiden Tabellen:
CREATE TABLE `marke` (
`markeid` int(9) unsigned NOT NULL auto_increment,
`marke` varchar(50) NOT NULL default '',
`marke_bez` varchar(25) NOT NULL default '',
`provision` decimal(5,3) default '0.000',
`fk_veranstalter` int(9) unsigned NOT NULL default '0',
PRIMARY KEY (`markeid`),
UNIQUE KEY `ie_marke_marke_bez` (`marke_bez`),
KEY `ie_marke_fk_veranstalter` (`fk_veranstalter`)
) TYPE=MyISAM;
und
CREATE TABLE `veranstalter` (
`veranstalterid` int(9) NOT NULL auto_increment,
`veranstalter` varchar(50) NOT NULL default '',
`veranstalter_bez` varchar(20) NOT NULL default '',
`strasse` varchar(50) NOT NULL default '',
`plz` int(5) NOT NULL default '0',
`ort` varchar(50) NOT NULL default '',
`agnr` varchar(15) NOT NULL default '',
`tel` varchar(50) NOT NULL default '',
`btx` varchar(50) default NULL,
`fax` varchar(50) NOT NULL default '',
`telex` varchar(50) default NULL,
`bemerkung` text NOT NULL,
PRIMARY KEY (`veranstalterid`),
UNIQUE KEY `veranstalter_bez` (`veranstalter_bez`)
) TYPE=MyISAM;
Ich muss jetzt die ID (Primary Key´s) und die BEZ Felder aus beiden Tabellen zusammen-
führen. Dies mache ich mittels eines Union konstruktes. Allerdings muss ich bei den
ID-Werten aus der Tabelle Marke vor die markeid noch die Zeichenfolge "m_" setzen.
Für dieses Problem habe ich mir folgendes SQL-Statement zusammengebaut:
SELECT veranstalter_bez AS bez, veranstalterid AS id
FROM veranstalter
UNION ALL SELECT marke_bez AS bez, concat("m_",markeid) AS id
FROM marke
ORDER BY bez
Leider funktioniert es nicht richtig.
Denn die ID´s der Tabelle Marke werden darauf hin immer nur mit "0" ausgegeben,
statt z.B. mit "m_1","m_2", usw.
Auch ein versuch mit LPAD() war nicht von Erfolg gekrönt. Ich bin für jede Idee, wie ich
vor das INT-Feld markeid die Zeichenfolge "m_" bekomm sehr dankbar.
MFG
ps-mixter
ich habe ein kleines Problem bei dem ich entweder zu doof bin oder es so genial einfach
ist, dass ich wieder den Wald vor lauter Bäumen nicht sehe.
Bevor ich mein Problem beschreibe umreise ich noch kurz die Vorraussetzungen:
Ich habe die beiden Tabellen:
CREATE TABLE `marke` (
`markeid` int(9) unsigned NOT NULL auto_increment,
`marke` varchar(50) NOT NULL default '',
`marke_bez` varchar(25) NOT NULL default '',
`provision` decimal(5,3) default '0.000',
`fk_veranstalter` int(9) unsigned NOT NULL default '0',
PRIMARY KEY (`markeid`),
UNIQUE KEY `ie_marke_marke_bez` (`marke_bez`),
KEY `ie_marke_fk_veranstalter` (`fk_veranstalter`)
) TYPE=MyISAM;
und
CREATE TABLE `veranstalter` (
`veranstalterid` int(9) NOT NULL auto_increment,
`veranstalter` varchar(50) NOT NULL default '',
`veranstalter_bez` varchar(20) NOT NULL default '',
`strasse` varchar(50) NOT NULL default '',
`plz` int(5) NOT NULL default '0',
`ort` varchar(50) NOT NULL default '',
`agnr` varchar(15) NOT NULL default '',
`tel` varchar(50) NOT NULL default '',
`btx` varchar(50) default NULL,
`fax` varchar(50) NOT NULL default '',
`telex` varchar(50) default NULL,
`bemerkung` text NOT NULL,
PRIMARY KEY (`veranstalterid`),
UNIQUE KEY `veranstalter_bez` (`veranstalter_bez`)
) TYPE=MyISAM;
Ich muss jetzt die ID (Primary Key´s) und die BEZ Felder aus beiden Tabellen zusammen-
führen. Dies mache ich mittels eines Union konstruktes. Allerdings muss ich bei den
ID-Werten aus der Tabelle Marke vor die markeid noch die Zeichenfolge "m_" setzen.
Für dieses Problem habe ich mir folgendes SQL-Statement zusammengebaut:
SELECT veranstalter_bez AS bez, veranstalterid AS id
FROM veranstalter
UNION ALL SELECT marke_bez AS bez, concat("m_",markeid) AS id
FROM marke
ORDER BY bez
Leider funktioniert es nicht richtig.
Denn die ID´s der Tabelle Marke werden darauf hin immer nur mit "0" ausgegeben,
statt z.B. mit "m_1","m_2", usw.
Auch ein versuch mit LPAD() war nicht von Erfolg gekrönt. Ich bin für jede Idee, wie ich
vor das INT-Feld markeid die Zeichenfolge "m_" bekomm sehr dankbar.
MFG
ps-mixter