Hallo,
CREATE TABLE product {
id int autoincrement
name varchar 255
preis float
}
CREATE TABLE monitor EXTENDS product {
product_id -- Verweis auf die Produkt-ID
gewicht int
resolution_x int
resolution_y int
-- product_id ist Primärschlüssel der Tabelle
-- und gleichzeitig Fremdschlüssel auf id der Tabelle product
}
d.h. eine 1:1-Beziehung, gleiches für Deine Drucker.
CREATE TABLE drucker EXTENDS product { /// <------ EXTENDS
gewicht int
auflösung int
geschwindigkeit int
}
Mit einer UNION der entsprechenden Joins bekommst Du Dein Abfrageergebnis.
[code lang=sql]
SELECT
id,
name,
gewicht,
'monitor' __entity
FROM
product p
INNER JOIN
monitor m
ON
p.id = m.product_id
UNION
SELECT
id,
name,
gewicht,
'drucker' __entity
FROM
product p
INNER JOIN
drucker d
ON
p.id = d.product_id
id | name | gewicht | __entity__
2 | EIZO Bildschirm | 4 | monitor
4 | HP Bildschirm | 3 | monitor
5 | DELL Bildschirm | 3 | monitor
8 | BElinea Bildsc. | 5 | monitor
1 | HP Drucker | 2 | drucker
89 | EPSON DRUCKER 2 | 1 | drucker
Du kannst nun die WHERE-Klausel in die beiden SELECTS einbringen und bekommst das gewünschte Ergebnis.
Ein solches Konzept fehlt mir extrem!
Es ist vorhanden.
Freundliche Grüße
Vinzenz