我的问题如下图所述,数据库结构及数据在下面代码块,求大牛帮忙看看..
我希望得到的结果是:
表结构及数据如下
CREATE TABLE A(
id INT NOT NULL,
num INT NOT NULL
)CHARSET=utf8;
INSERT INTO A(id,num) VALUES(1,5),(2,7),(3,6);
CREATE TABLE B(
aid INT NOT NULL,
sid INT NOT NULL,
content VARCHAR(20) NOT NULL
)CHARSET=utf8;
INSERT INTO B(aid,sid,content) VALUES(3,1,'A'),(3,2,'B'),(3,3,'C');
CREATE TABLE C(
id INT NOT NULL,
time INT NOT NULL,
libs VARCHAR(20) NOT NULL
)CHARSET=utf8;
INSERT INTO C(id,time,libs) VALUES(2,18,'wagaga'),(3,16,'aaaa'),(1,15,'cc'),(3,17,'dddd'),(4,14,'eeee'),(3,10,'ffff'),(3,11,'bbbb');
这么可以满足我的需求,但是执行效率太低了...
select * from
(
SELECT distinct
a.id,a.num,b.aid,b.sid,b.content,c.id as cid,c.time,c.libs
FROM
a a
LEFT JOIN b b ON b.aid = a.id
LEFT JOIN c ON c.id = b.sid
WHERE a.id = 3
ORDER BY time DESC
) as TMP
GROUP BY cid ;
有没有大牛能提供一个更效率的写法呢?
으아아아
으아아아
위 데이터라면 이 SQL이 만족되어야 합니다. . . 만족스럽지 않다면 신경쓰지 마세요...
이것은 내 쿼리 결과입니다
으아아아
원하는 내용이 질문에 명확하게 설명되어 있지 않습니다. . .
으아악
효율성에 문제가 있습니다..