Mysql 数据库查询以获取最近更新的实体
我在MySQL数据库中有两个表-Mysql 数据库查询以获取最近更新的实体,mysql,database,join,relationship,Mysql,Database,Join,Relationship,我在MySQL数据库中有两个表- /* main theatre table */ CREATE TABLE THEATRE ( id VARCHAR(100) PRIMARY KEY, name VARCHAR(100) NOT NULL, location VARCHAR(100), type VARCHAR(100), /* comma separated values */ createDateTime BIGINT NOT NULL /* Current time in milli
/* main theatre table */
CREATE TABLE THEATRE
(
id VARCHAR(100) PRIMARY KEY,
name VARCHAR(100) NOT NULL,
location VARCHAR(100),
type VARCHAR(100), /* comma separated values */
createDateTime BIGINT NOT NULL /* Current time in milliseconds everytime a record is inserted */
);
/* table to capture all theatre activity */
CREATE TABLE THEATRE_ACTIVITY
(
id VARCHAR(100) PRIMARY KEY,
theatreId VARCHAR(100) NOT NULL REFERENCES THEATRE(id),
activity VARCHAR(20), /* (RATED | CREATED | EDITED) */
createDateTime BIGINT NOT NULL /* Current time in milliseconds everytime a record is inserted */
);
每次剧院中有活动
时,都会在T加热活动
表中插入一条记录。我需要根据THEATRE\u活动
createDateTime
从最近到最后获取所有THEATRE
的所有(distinct
)名称、ID和位置
有人能帮我吗
select id, name, location
from theatre INNER JOIN
(select theatreid, MAX(createDateTime)
from theatre_activity
group by theatreId) ta ON theatre.id = ta.theatreId
该查询将获取所有具有剧院活动的不同剧院(假设剧院表中没有重复的剧院)。
如果有多个活动,则选择“最近”。这是我从你的问题陈述中理解的。我提供了一个问题,我从你的问题陈述中理解的
select DISTINCT t.id, t.name, t.location from theatre t, theatre_activity ta where t.id = ta.theatreId order by t.id desc
请尝试此查询
select id, name, location, ta.td
from theatre INNER JOIN
(select theatreid, MAX(createDateTime) td
from theatre_activity
group by theatreId ) ta ON theatre.id = ta.theatreId order by ta.td desc
谢谢@Naveen,但是,查询给了我以下错误——“on子句”中的未知列“ta.therateId”。你能帮我解决这个问题吗?这个查询对你有用吗?
通过剧院ID从剧院活动组中选择剧院ID,MAX(createDateTime)td
?谢谢@Zohaib,但是,我从Naveen的“on子句”中的未知列“ta.theatreid”中得到的错误与你的查询相同。你能帮我解决这个问题吗?谢谢@Kandarp。这是行不通的。事实上,我正试图根据剧院活动的降序——从大到小——得到所有剧院的列表。因为活动存储在一个单独的表中。