SQL 请求 mysql

SQL Request with mysql

我有两个 table orderretailer

订单中的地址是一个整数值,代表零售商的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 匹配的两个表。