我有目前的情况:
表1 Package 清单:
CREATE TABLE `PackingList` (
`PackingListId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Sku` char(10) NOT NULL DEFAULT '',
`PartId1` int(8) unsigned NOT NULL,
`PartId2` int(8) unsigned DEFAULT NULL,
`PartId3` int(8) unsigned DEFAULT NULL,
`PartId4` int(8) unsigned DEFAULT NULL,
`PartId5` int(8) unsigned DEFAULT NULL,
`PartId6` int(8) unsigned DEFAULT NULL,
`PartId7` int(8) unsigned DEFAULT NULL,
`PartId8` int(8) unsigned DEFAULT NULL,
`PartId9` int(8) unsigned DEFAULT NULL,
`PartId10` int(8) unsigned DEFAULT NULL,
PRIMARY KEY (`PackingListId`),
KEY `PartId1 <-> PLC_PartId[PartId]` (`PartId1`),
KEY `PartId2 <-> PLC_PartId[PartId]` (`PartId2`),
KEY `PartId3 <-> PLC_PartId[PartId]` (`PartId3`),
KEY `PartId4 <-> PLC_PartId[PartId]` (`PartId4`),
KEY `PartId5 <-> PLC_PartId[PartId]` (`PartId5`),
KEY `PartId6 <-> PLC_PartId[PartId]` (`PartId6`),
KEY `PartId7 <-> PLC_PartId[PartId]` (`PartId7`),
KEY `PartId8 <-> PLC_PartId[PartId]` (`PartId8`),
KEY `PartId9 <-> PLC_PartId[PartId]` (`PartId9`),
KEY `PartId10 <-> PLC_PartId[PartId]` (`PartId10`),
);
表2(partid):
CREATE TABLE `PartId` (
`PartSkuId` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT,
`Content` varchar(255) DEFAULT NULL,
`Height` decimal(7,2) unsigned NOT NULL,
`Width` decimal(7,2) unsigned NOT NULL,
`Depth` decimal(7,2) unsigned NOT NULL,
`Weight` decimal(7,3) unsigned NOT NULL,
`Supplier` varchar(100) NOT NULL DEFAULT '',
`Created` datetime DEFAULT NULL,
`CreatedBy` varchar(20) DEFAULT NULL,
`InUse` tinyint(1) DEFAULT '1',
`FF_Confirmed` datetime DEFAULT NULL,
PRIMARY KEY (`PartSkuId`),
KEY `Supplier` (`Supplier`)
) ENGINE=InnoDB AUTO_INCREMENT=6698 DEFAULT CHARSET=utf8;
考虑到我有这两个表,其中packinglist表的每一行都包含引用partid表中一行的多个id,我想得到一个类似packinglist的列表,其中每一行都是关系packinglist(可以重复)-->partid:
PackingListId PartId
H0001 partId1
H0001 . partId2
等等。
到目前为止,我做了一些选择,以获得这些信息,但我没有得到那么远,有人能帮我写一个这样的结果查询?
2条答案
按热度按时间xnifntxz1#
使用子查询like
选择t1\ id,(从表2中选择t2\ id)作为t2\ id,(从表2中选择c1)作为c1,(从表2中选择c2)作为c2,(从表2中选择c3)作为表1中的c3
w8biq8rn2#
专业技巧1:您花在弄清楚sql查询(或任何程序)必须做什么上的时间越多,所花的时间就越少。
这是猜测。在你编辑之前,我正在回答你的问题。但我相信你想要这样的东西
这将获得t1.p1中提到的t2的值。
然后需要一堆子查询,每个子查询一个
p*
项目。您将接受这些子查询的并集。pro技巧2:这比需要的困难,因为t1表是非规范化的。现在在你的申请表中更改它可能已经太迟了,但是无论如何你都应该阅读它。