Ik loop al de hele avond te stoeien met een subquery. Vroeger deed ik het in twee stappen mbv php maar het kan natuurlijk netter met een subquery.

Ik wil graag de nickname van een topic-starter ophalen uit de tabel users.

tabel users
id|nickname

tabel forum_topic
topic_id|user_id|memo

de query

<?php
$sql = "SELECT
topic_id,
user_id,
(SELECT
id,
nickname
WHERE
id = user_id
)
AS gebruikersnaam
FROM
forum_topic
WHERE
cat_id = 3
AND
topic_id = 238
";
?>

De betreffende rij bestaat, daar kan het niet aan liggen.

Ik krijg nu de error


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = user_id ) AS gebruikersnaam FROM forum_topic WHERE ' at line 7


Het is de eerste subquery die ik probeer te maken, wie kan me dit zetje even geven?
Testversie die ik aangemaakt had:


-- 
-- Table structure for table `tochten`
-- 

CREATE TABLE `tochten` (
  `id` int(3) NOT NULL auto_increment,
  `naam` varchar(255) NOT NULL,
  `datum` date NOT NULL,
  `memo` date NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

-- 
-- Dumping data for table `tochten`
-- 

INSERT INTO `tochten` (`id`, `naam`, `datum`, `memo`) VALUES (1, 'tocht1', '2006-10-23', '0000-00-00'),
(2, 'tocht2', '2006-10-24', '0000-00-00');

-- --------------------------------------------------------

-- 
-- Table structure for table `users_tochten`
-- 

CREATE TABLE `users_tochten` (
  `id` int(3) NOT NULL auto_increment,
  `users` int(3) NOT NULL,
  `tochten` int(3) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

-- 
-- Dumping data for table `users_tochten`
-- 

INSERT INTO `users_tochten` (`id`, `users`, `tochten`) VALUES (1, 1, 1),
(2, 1, 2),
(3, 2, 2);
Maakt het hier uit dat je een InnoDB hebt gebruikt ipv een MyISAM?

Het werkt nu nl wel :D Top! Nu even verder rommelen en uitbreiden!

Dank je wel Blanche!
Eh nee, dat mag niet uitmaken. Ik gebruik normaal ook altijd MyISAM, blijkbaar stond de instelling hier lokaal toevallig op innoDB toen ik de tabellen aanmaakte.
Oke, thx anyway :D Ben zeer geholpen hiermee

Reageren