我有两个表,一个表包含不同类别的值的选择,另一个“主”表通过第一个主键引用文本值。
表格1
CREATE TABLE IF NOT EXISTS `defaultvalues` (
`default_ID` int(11) NOT NULL AUTO_INCREMENT,
`columnName` varchar(100) NOT NULL,
`defaultValue` varchar(100) NOT NULL,
PRIMARY KEY (`default_ID`),
UNIQUE KEY `columnName` (`columnName`,`defaultValue`)
)
表2
CREATE TABLE IF NOT EXISTS `master` (
`master_ID` int(11) NOT NULL AUTO_INCREMENT,
`size` int(11) NOT NULL,
`madeby` int(11) NOT NULL,
`type` int(11) NOT NULL,
`colour` int(11) NOT NULL,
`notes` text NOT NULL,
`issueDate` datetime NOT NULL,
`ceMark` text NOT NULL,
`batchNumber` text NOT NULL,
主键(
master_ID
))
每行的master.size是defaultvalues表中的P.key。
例如。 master.colour = 234,234 = defaultvalues.defaultValue =“红色”
例如。 master.size = 345,345 = defaultvalues.defaultValue ='small'
现在,我想运行一个查询,该查询返回“主”表,该表的文本值由“默认值”构成,其颜色为颜色,大小,类型。 defaultValue”,并准备进行进一步处理。
我一直在尝试子查询和临时表,但无法正常工作
当前系统依赖于PHP和多个查询以及构建数组。
必须有一个更优雅的解决方案。
我希望这是有道理的。
任何提示或建议,不胜感激。
戴夫
最佳答案
您需要多次将主表连接到defaultvalues表。像这样:
SELECT m.*, d.defaultvalue as sizevalue, d2.defaultvalue as colorvalue...
FROM master m
JOIN defaultvalues d ON m.size = d.default_id
JOIN defaultvalues d2 ON m.color = d2.default_id
...
关于php - MYSQL联接两个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23860444/