我有两个表,一个表包含不同类别的值的选择,另一个“主”表通过第一个主键引用文本值。

表格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/

10-10 19:02