SQL 请求 mysql
SQL Request with mysql
我有两个 table order
和 retailer
。
订单中的地址是一个整数值,代表零售商的id。
我需要 select 零售商的地址 table。
我相信我必须做类似的事情:
Select * from order where (select .....)
我的语法似乎不正确。
编辑
这是我的table脚本
CREATE TABLE IF NOT EXISTS `commande` (
`CO_Id` int(11) NOT NULL,
`CO_Date` date NOT NULL,
`CO_Facturation_Adresse` varchar(255) DEFAULT NULL,
`CO_Livraison_Adresse` varchar(255) DEFAULT NULL,
`CO_Statut` int(11) DEFAULT NULL,
`CO_Detaillant` int(11) NOT NULL,
`CO_Tag` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`CO_Number_Commande` varchar(64) DEFAULT NULL,
`CO_Amount_Untaxed` float(10,0) DEFAULT NULL,
`CO_Amount_Tax` float(10,0) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2870 DEFAULT CHARSET=latin1;
这是我的零售商 table
CREATE TABLE IF NOT EXISTS `detaillant` (
`DE_No` int(11) unsigned NOT NULL,
`DE_Nom` varchar(100) NOT NULL DEFAULT '',
`DE_DescFR` text,
`DE_DescEN` text,
`DE_Site` varchar(100) DEFAULT NULL,
`DE_Actif` int(11) NOT NULL DEFAULT '1',
`DE_NoTel` varchar(32) DEFAULT NULL,
`DE_Adresse` varchar(255) DEFAULT NULL,
`DE_FkProvince` int(11) unsigned DEFAULT NULL,
`DE_Ville` varchar(255) DEFAULT NULL,
`DE_CodePostal` varchar(24) DEFAULT NULL,
`DE_NoTelSansFrais` varchar(32) DEFAULT NULL,
`DE_LunDeb` time DEFAULT '08:00:00',
`DE_LunFin` time DEFAULT '21:00:00',
`DE_MarDeb` time DEFAULT '08:00:00',
`DE_MarFin` time DEFAULT '21:00:00',
`DE_MerDeb` time DEFAULT '08:00:00',
`DE_MerFin` time DEFAULT '21:00:00',
`DE_JeuDeb` time DEFAULT '08:00:00',
`DE_JeuFin` time DEFAULT '21:00:00',
`DE_VenDeb` time DEFAULT '08:00:00',
`DE_VenFin` time DEFAULT '21:00:00',
`DE_SamDeb` time DEFAULT '08:00:00',
`DE_SamFin` time DEFAULT '21:00:00',
`DE_DimDeb` time DEFAULT '08:00:00',
`DE_DimFin` time DEFAULT '21:00:00'
) ENGINE=InnoDB AUTO_INCREMENT=2011 DEFAULT CHARSET=utf8;
CO_Facturation_Adresse
,CO_Livraison_Adresse
是 id 零售商,但我想从零售商那里取回地址而不是 id
根据您发布的内容,我认为您正在尝试使用 subquery
来获取所有零售商 ID。像
Select * from order where address in (
select distinct ID from retailers
)
试试这个:
select o.field1, o.field2, r.DE_Adresse from commande AS ord inner join detaillant AS ret ON ord.CO_Facturation_Adresse = ret.DE_No;
我不确定您要 select 哪些字段,但基本思想是您 select 您想要的字段而不是所有字段 (*)。然后加入 ID 匹配的两个表。
我有两个 table order
和 retailer
。
订单中的地址是一个整数值,代表零售商的id。
我需要 select 零售商的地址 table。
我相信我必须做类似的事情:
Select * from order where (select .....)
我的语法似乎不正确。
编辑
这是我的table脚本
CREATE TABLE IF NOT EXISTS `commande` (
`CO_Id` int(11) NOT NULL,
`CO_Date` date NOT NULL,
`CO_Facturation_Adresse` varchar(255) DEFAULT NULL,
`CO_Livraison_Adresse` varchar(255) DEFAULT NULL,
`CO_Statut` int(11) DEFAULT NULL,
`CO_Detaillant` int(11) NOT NULL,
`CO_Tag` varchar(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`CO_Number_Commande` varchar(64) DEFAULT NULL,
`CO_Amount_Untaxed` float(10,0) DEFAULT NULL,
`CO_Amount_Tax` float(10,0) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2870 DEFAULT CHARSET=latin1;
这是我的零售商 table
CREATE TABLE IF NOT EXISTS `detaillant` (
`DE_No` int(11) unsigned NOT NULL,
`DE_Nom` varchar(100) NOT NULL DEFAULT '',
`DE_DescFR` text,
`DE_DescEN` text,
`DE_Site` varchar(100) DEFAULT NULL,
`DE_Actif` int(11) NOT NULL DEFAULT '1',
`DE_NoTel` varchar(32) DEFAULT NULL,
`DE_Adresse` varchar(255) DEFAULT NULL,
`DE_FkProvince` int(11) unsigned DEFAULT NULL,
`DE_Ville` varchar(255) DEFAULT NULL,
`DE_CodePostal` varchar(24) DEFAULT NULL,
`DE_NoTelSansFrais` varchar(32) DEFAULT NULL,
`DE_LunDeb` time DEFAULT '08:00:00',
`DE_LunFin` time DEFAULT '21:00:00',
`DE_MarDeb` time DEFAULT '08:00:00',
`DE_MarFin` time DEFAULT '21:00:00',
`DE_MerDeb` time DEFAULT '08:00:00',
`DE_MerFin` time DEFAULT '21:00:00',
`DE_JeuDeb` time DEFAULT '08:00:00',
`DE_JeuFin` time DEFAULT '21:00:00',
`DE_VenDeb` time DEFAULT '08:00:00',
`DE_VenFin` time DEFAULT '21:00:00',
`DE_SamDeb` time DEFAULT '08:00:00',
`DE_SamFin` time DEFAULT '21:00:00',
`DE_DimDeb` time DEFAULT '08:00:00',
`DE_DimFin` time DEFAULT '21:00:00'
) ENGINE=InnoDB AUTO_INCREMENT=2011 DEFAULT CHARSET=utf8;
CO_Facturation_Adresse
,CO_Livraison_Adresse
是 id 零售商,但我想从零售商那里取回地址而不是 id
根据您发布的内容,我认为您正在尝试使用 subquery
来获取所有零售商 ID。像
Select * from order where address in (
select distinct ID from retailers
)
试试这个:
select o.field1, o.field2, r.DE_Adresse from commande AS ord inner join detaillant AS ret ON ord.CO_Facturation_Adresse = ret.DE_No;
我不确定您要 select 哪些字段,但基本思想是您 select 您想要的字段而不是所有字段 (*)。然后加入 ID 匹配的两个表。