Tsql SQL连接语句问题

Tsql SQL连接语句问题,tsql,Tsql,我试图从最新的现金记录中获取所有字段,然后从相关的TransactionInfo记录中获取所有字段。我还不能完全让它工作: select t.*, top 1 c.* from Cash c inner join TransactionInfo t on c.TransactionID = t.id order by c.createdOn desc 那个头号人物在那里干什么?如果您只需要一行,则必须先选择TOP1: SELECT TOP(1) t.*, c.* FROM Cash c INN

我试图从最新的现金记录中获取所有字段,然后从相关的TransactionInfo记录中获取所有字段。我还不能完全让它工作:

select t.*, top 1 c.* from Cash c
inner join TransactionInfo t
on c.TransactionID = t.id
order by c.createdOn desc
那个头号人物在那里干什么?如果您只需要一行,则必须先选择TOP1:

SELECT TOP(1) t.*, c.*
FROM Cash c
INNER JOIN TransactionInfo t
ON c.TransactionID = t.id
ORDER BY c.createdOn DESC
选择t,c。 从createdOn描述的现金订单中选择前1* C 内部联接事务 在c.TransactionID=t.id上 按createdOn描述订购

唐;不要使用select*,尤其是在连接时,它会浪费服务器资源

SELECT c.*, t.* FROM cash c, transactioninfo t
WHERE c.infoid = t.id AND c.createdOn = (SELECT max(createdOn) FROM cash WHERE infoId = t.id) ORDER BY transactiontabledate desc

您需要从现金表中为每个transactionId找到最新日期的记录,并在查询中使用该记录将其过滤掉。

但这也会从结果集中的TransactionInfo中获取所有字段吗?我需要看到这两组字段。+1-我认为这是OP后面的内容,即仍然需要前1,这是错误的place@coffeeaddict-您是否尝试运行此查询?从你的评论来看,这听起来确实是你想要的。你能试试看,弄清楚它是做还是不做你想做的吗?@coffeeaddict:如果它不起作用,发布错误或意外结果以及你期望的结果。@coffeeaddict是的,选择*将从所有连接的表中获取所有字段-不需要说选择c*,t.*explicit.top是因为我只想获取插入的最新条目..在不知道其含义的情况下,我明白您现在所说的。如果我只想要最新的唱片,而不是所有的唱片呢。我只想看到一个结果,那就是根据CreateDon插入现金的最新记录每笔交易的最新现金记录?我想要最新现金记录。您的列表列出了CreatedOn订购的所有产品。我只想要前1名最近创建的现金record@coffeeaddict:我的第二个查询是否符合您的要求?如果没有,请您更清楚地解释一下您想要什么,也许可以使用一些示例输入和该输入的预期输出。列CreatedOn属于哪个表?对不起,post错误。现在更新。
SELECT c.*, t.* FROM cash c, transactioninfo t
WHERE c.infoid = t.id AND c.createdOn = (SELECT max(createdOn) FROM cash WHERE infoId = t.id) ORDER BY transactiontabledate desc