Hallo,
Ik heb (versimpeld) deze tabellen:
[sql]
CREATE TABLE `products` (
`productID` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`categoryID` int(11) default '0',
PRIMARY KEY (`productID`)
)
CREATE TABLE `manufacturers` (
`manufacturerID` int(11) NOT NULL auto_increment,
`name` varchar(200) NOT NULL default ''
)
CREATE TABLE `product2manufacturer` (
`productID` int(11) NOT NULL default '0',
`manufacturerID` int(11) NOT NULL default '0',
PRIMARY KEY (`productID`,`manufacturerID`)
)
[/sql]
Nu zou ik graag bij alle producenten de producten als 1 string uit de database willen halen.
Dus (bijvoorbeeld):
1. Shell olie, gas, zonnepanelen
Kan dat direct in SQL?
Wanneer ik alle combinaties mogelijke combinaties uit de database haal en dan in PHP ga filteren, heb ik voor m'n overzichten niets meer aan de LIMIT functionaliteit. Wanneer ik eerst een aantal producenten uit de database haal en er vervolgens steeds de producten voor uit de database haal, is dat redelijk dodelijk voor de snelheid van de code.
Ik dacht dat wellicht met een subquery iets te regelen is?
Zoiets als:
[sql]
SELECT m.name, m.manufacturerID as mID, p2m.*, p.* FROM manufacturers AS m, product2manufacturer AS p2m,
( SELECT * FROM products AS p, product2manufacturer AS p2m
WHERE p.productID = p2m.productID )
AS p
WHERE p.productID = p2m.productID AND p2m.manufacturerID = m.manufacturerID
ORDER BY m.manufacturerID
[/sql]
Maar dat werkt al helemaal niet.
Is hier wellicht een mogelijkheid voor in MySQL?
Alvast veel dank!
Ik heb (versimpeld) deze tabellen:
[sql]
CREATE TABLE `products` (
`productID` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`categoryID` int(11) default '0',
PRIMARY KEY (`productID`)
)
CREATE TABLE `manufacturers` (
`manufacturerID` int(11) NOT NULL auto_increment,
`name` varchar(200) NOT NULL default ''
)
CREATE TABLE `product2manufacturer` (
`productID` int(11) NOT NULL default '0',
`manufacturerID` int(11) NOT NULL default '0',
PRIMARY KEY (`productID`,`manufacturerID`)
)
[/sql]
Nu zou ik graag bij alle producenten de producten als 1 string uit de database willen halen.
Dus (bijvoorbeeld):
1. Shell olie, gas, zonnepanelen
Kan dat direct in SQL?
Wanneer ik alle combinaties mogelijke combinaties uit de database haal en dan in PHP ga filteren, heb ik voor m'n overzichten niets meer aan de LIMIT functionaliteit. Wanneer ik eerst een aantal producenten uit de database haal en er vervolgens steeds de producten voor uit de database haal, is dat redelijk dodelijk voor de snelheid van de code.
Ik dacht dat wellicht met een subquery iets te regelen is?
Zoiets als:
[sql]
SELECT m.name, m.manufacturerID as mID, p2m.*, p.* FROM manufacturers AS m, product2manufacturer AS p2m,
( SELECT * FROM products AS p, product2manufacturer AS p2m
WHERE p.productID = p2m.productID )
AS p
WHERE p.productID = p2m.productID AND p2m.manufacturerID = m.manufacturerID
ORDER BY m.manufacturerID
[/sql]
Maar dat werkt al helemaal niet.
Is hier wellicht een mogelijkheid voor in MySQL?
Alvast veel dank!