у меня есть две таблицы и структуры здесь:MySql, объединять таблицы WHERE IN()
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`membership` varchar(12) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `memberships` (
`id` int(1) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `memberships` (`id`, `title`) VALUES
(1, 'Basic'),
(2, 'Bronze'),
(3, 'Gold'),
(4, 'Platinum');
INSERT INTO `users` (`id`, `username`, `membership`) VALUES
(1, 'john', '0'),
(2, 'mike', '1,2'),
(3, 'peter', '3,4'),
(4, 'jane', '3'),
(5, 'rick', '1,2,3');
мне нужно соединить обе таблицы и список всех пользователей с их помощью членства IN функции.
Это то, что я пытался, но я не могу присоединиться к таблицам, что путь:
SELECT
*.u
m.title AS title
FROM
`users` AS u
LEFT JOIN `memberships` AS m
WHERE m.id IN(u.membership)
ORDER BY u.username;
То, что я хотел бы иметь что-то вроде этого:
username membership
=====================================
john null
mike Basic, Bronze
peter Gold, Platinum
jane Gold
rick Basic, Bronze, Gold
Я создал SQL скрипта: http://sqlfiddle.com/#!9/39b6e1
'ВЫБРАТЬ и *' не '* .u' – RiggsFolly