MySQL: substr() in Query möglich?

3Dnavigator

Erfahrenes Mitglied
Hallo zusammen!

Ich muss Datensätze aus unterschiedlichen Tabellen mittels JOIN miteinander verknüpfen. Soweit kein Problem. Untenstehender Query funktioniert so weit auch.

Nun ist aber das Problem, dass die Werte in den Felder `objectnumber` (siehe erste ON-Klausel in erstem JOIN) NICHT miteinander identisch sind. Demnach liefert der JOIN ein NULL als Ergebnis.
Allerdings sind die ersten 6 Ziffern identisch. Das heisst, ich muss die jeweils ersten 6 Zeichen miteinander vergleichen. In PHP würde das ungefähr so aussehen:

Code:
ON( substr(`import_datalist`.`objectnumber`,0,6) = substr(`import_objectinfo`.`objectnumber`,0,6) ...

Aber die mache ich das in MySQL

Nun sieht mein SQL-Query bis jetzt so aus:

Code:
SELECT
	`import_objectinfo`.`year`,

	`import_objectinfo`.`month`,
	`import_objectinfo`.`objectnumber`,
	`import_objectinfo`.`value`,
	`site`.`subsidiary_id`
FROM
	`import_objectinfo`
LEFT JOIN
	`import_datalist`
	ON (
		`import_datalist`.`objectnumber` = `import_objectinfo`.`objectnumber`
		AND `import_datalist`.`year` = `import_objectinfo`.`year`
		AND `import_datalist`.`month` = `import_objectinfo`.`month`
	)
LEFT JOIN
	`costcenter`
	ON (
		`costcenter`.`costcenter` = `import_datalist`.`costcenter`
	)
LEFT JOIN
	`site`
	ON (
		`site`.`id` = `costcenter`.`site_id`
	)
WHERE
	1
GROUP BY
	`import_objectinfo`.`objectnumber`,
	`import_objectinfo`.`year`,
	`import_objectinfo`.`month`
ORDER BY
	`import_objectinfo`.`year` ASC,
	`import_objectinfo`.`month` ASC

Besten Dank für jede Hilfe!
LG,
3Dnavigator
 
Ich habe mir ja die Antwort schon fast selbst gegeben... :)
SUBSTRING() kann man in einem Query genauso anwenden, wie SUBSTR() in PHP. Funktioniert also hervorragend!
 
Zurück