Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL在表联接中使用子查询_Mysql_Sql - Fatal编程技术网

MySQL在表联接中使用子查询

MySQL在表联接中使用子查询,mysql,sql,Mysql,Sql,我正在尝试获取创建记录的用户的名称,以及使用表联接从另一个表更新记录的另一个用户的名称,该记录返回2行,这不是我想要的,我正在尝试找出如何编写子查询以获取更新记录的用户的名称,并分配别名,使其返回一行 下面的两个表和我的查询 DROP TABLE IF EXISTS `reseller`; CREATE TABLE IF NOT EXISTS `reseller` ( `id` int(3) NOT NULL AUTO_INCREMENT, `name` varchar(255) COL

我正在尝试获取创建记录的用户的名称,以及使用表联接从另一个表更新记录的另一个用户的名称,该记录返回2行,这不是我想要的,我正在尝试找出如何编写子查询以获取更新记录的用户的名称,并分配别名,使其返回一行

下面的两个表和我的查询

DROP TABLE IF EXISTS `reseller`;
CREATE TABLE IF NOT EXISTS `reseller` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `phone_number` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
  `user_type` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `created` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `lastlogin` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `status` enum('active','suspended') COLLATE utf8_unicode_ci NOT NULL,
  `confirmcode` int(9) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


INSERT INTO `reseller` (`id`, `name`, `email`, `password`, `phone_number`, `user_type`, `created`, `lastlogin`, `status`, `confirmcode`) VALUES
(1, 'Andrie Rieu', 'reseller@ghmailc.com', 'jrxtroU0zq1XzTDBdjFpMEdCZFpmQzdPbzZ4aTlOTDhWZz098cPr55nj4NXecFhU', '35893828231', 'sales rep', '1596282651', '1619609401', 'active', 0),
(2, 'Joice Brenda', 'btcethxrpxlm@gmail.com', 'wmTvO1r7Bl18qXbrdjFpMEdCZFpmQzdPbzZ4aTlOTDhWZz09Wz3dZ6wIR9onEhPd', '+325893929491', 'book keeper', '1619684254', '1619713660', 'active', 0);
COMMIT;

DROP TABLE IF EXISTS `supplier_record`;
CREATE TABLE IF NOT EXISTS `supplier_record` (
  `supplier_id` int(5) NOT NULL AUTO_INCREMENT,
  `supplier_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
  `company_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_taxid` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_address` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_phone` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_email` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_bankname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_bankaccountno` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_bankaccountname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_bankroutingno` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_bankswiftcode` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `supplier_other` text COLLATE utf8_unicode_ci NOT NULL,
  `created` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `updated` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `created_by` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
  `updated_by` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`supplier_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='All supplier records';


INSERT INTO `supplier_record` (`supplier_id`, `supplier_name`, `company_name`, `supplier_taxid`, `supplier_address`, `supplier_phone`, `supplier_email`, `supplier_bankname`, `supplier_bankaccountno`, `supplier_bankaccountname`, `supplier_bankroutingno`, `supplier_bankswiftcode`, `supplier_other`, `created`, `updated`, `created_by`, `updated_by`) VALUES
(1, 'Wineop', 'Wineop Freight Services', 'TKPLYO213', '91 Juiner Ave', '0903489924913', 'hienow539@gmail.com', 'Bank of Netherlands', '0042942044', 'Komentis Wineop', 'KLD44-4FK32X', '3LLDRKE3-EOFKD', 'Eristomse', '1619757985', '', '2', '1');
COMMIT;
返回2行的我的查询

SELECT reseller.name,supplier_record.* FROM supplier_record,reseller WHERE (supplier_record.created_by = reseller.id) OR (supplier_record.updated_by = reseller.id) ORDER BY supplier_record.supplier_id DESC

请试着看看这是否是你期望的结果

查询:

SELECT 
  res_cr.name created_name, res_upd.name update_name, supplier_record.* 
FROM 
  supplier_record 
  left join reseller res_cr on supplier_record.created_by = res_cr.id
  left join reseller res_upd on supplier_record.updated_by = res_upd.id
ORDER BY 
  supplier_record.supplier_id DESC

fiddle url:()

加入
<代码>加入<代码>加入。千万不要在
FROM
子句中使用逗号。@GordonLinoff小心解释为什么逗号是旧的、令人困惑的和过时的。看到这个()@praveen好的,我试过你的查询,它成功了,不知道多个连接可以成功。它和预期的一样成功,谢谢!