[SQL] Veld in verschillende kolommen combineren tot 1 string

Pagina: 1
Acties:

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
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!

  • Mennootje
  • Registratie: December 2000
  • Laatst online: 22-09-2025
Ik denk dat je de GROUP_CONCAT functie van MySQL kunt gebruiken hiervoor.
Documentatie is te vinden op http://dev.mysql.com/doc/...n/group-by-functions.html

Je moet natuurlijk dan wel je in je query een GROUP BY doen op je manufacturerID.

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Dat is inderdaad de oplossing!

Is m'n hele sub-query ook niet meer nodig!

Top ... dank je wel!