【发布时间】:2021-06-26 17:55:16
【问题描述】:
我有一个公司数据库,其中包含所有详细信息。它还有一个单独的表来存储信用等级。
DROP TABLE IF EXISTS `company`;
CREATE TABLE IF NOT EXISTS `company` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET latin1 NOT NULL,
`email` varchar(255) CHARACTER SET latin1 NOT NULL,
`address` varchar(255) NOT NULL,
`address2` text NOT NULL,
`address3` text NOT NULL,
`phone` text NOT NULL,
`contacts` text NOT NULL,
`islive` tinyint(1) NOT NULL DEFAULT '1',
`qt` tinyint(1) NOT NULL DEFAULT '30',
`pt` tinyint(1) NOT NULL DEFAULT '30',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `creditrating`;
CREATE TABLE IF NOT EXISTS `creditrating` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cid` int(11) NOT NULL,
`rating` int(11) NOT NULL,
`arating` varchar(10) NOT NULL,
`type` tinyint(1) NOT NULL DEFAULT '1',
`thedate` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `company` (`id`, `name`, `email`, `address`, `address2`, `address3`, `phone`, `contacts`, `islive`, `qt`, `pt`) VALUES
(190, 'Test Company', 'test@test.com', 'Testing Client 1\r\nsdfsdfsdf\r\nsdfsdfsdf', 'Testing Client 1\r\nsdfsdfsdf\r\nsdfsdfsdf', 'Testing Client 1\r\nsdfsdfsdf\r\nsdfsdfsdf', '65165156', 'test name', 1, 30, 30),
(191, 'Test Company 2', 'test2@test2.com', 'Testing Client 2\r\nsdfsdfsdf\r\nsdfsdfsdf', 'Testing Client 2\r\nsdfsdfsdf\r\nsdfsdfsdf', 'Testing Client 2\r\nsdfsdfsdf\r\nsdfsdfsdf', '65165156', 'test name 2', 1, 30, 30);
INSERT INTO `creditrating` (`id`, `cid`, `rating`, `arating`, `type`, `thedate`) VALUES
(3, 190, 684, 'da774', 1, '2021-03-30 15:08:52'),
(6, 190, 222, 'DD222', 1, '2021-03-30 17:46:22');
我试图只检索公司详细信息和信用评级表上的最新行。
我最接近让它工作的 SQL 是 (Mysql 5.6):
SELECT c.id
, AES_DECRYPT(c.name, 'co1') as name
, AES_DECRYPT(c.phone, 'co3') as phone
, c.islive
, r.rating
FROM company c
LEFT
JOIN creditrating r
ON (SELECT r.thedate FROM creditrating WHERE c.id=r.cid ORDER BY r.thedate DESC LIMIT 1)
目前它正在带回同一家公司的 2 行而不是 1 行。
提前感谢你们通过我的方式提供的任何指点。
【问题讨论】:
标签: mysql sql left-join mysql-5.6