我有2表,項目和成員:MySQL查詢獲得逗號分隔的IDS數據的詳細
CREATE TABLE IF NOT EXISTS `items` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`member` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `members` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如果,例如我有內部items
的記錄,如
INSERT INTO `test`.`items` (
`id` ,
`name` ,
`member`
)
VALUES (
NULL , 'xxxx', '1, 2, 3'
);
在members
:
INSERT INTO `members` (`id`, `name`) VALUES
(1, 'asdf'),
(2, 'qwert'),
(3, 'uiop'),
(4, 'jkl;');
和我想要顯示items.member
數據與members.name
,類似於1#asdf, 2#qwert, 3#uiop
??
我試過下面的查詢,
SELECT items.id, items.name, GROUP_CONCAT(CONCAT_WS('#', members.id, members.name)) as member
FROM `items`
LEFT JOIN members AS members on (members.id = items.member)
WHERE items.id = 1
但結果並不像我想象的。是否有任何其他方式通過一個呼叫查詢顯示數據?因爲我正在使用PHP,現在,我將爆炸items.member
並逐一循環,以顯示members.name
。
你能告訴我們你的'物品表'嗎? – bonCodigo
你可以改變數據庫的模式嗎? – kmkaplan
@bonCodigo my'items'表只包含一條記錄,如上面 – thom