0

我有 2 张桌子,门票和状态。门票具有对应于 state.id 的外键状态

SELECT tickets.id AS 'Ticket Id', 
       state.description AS 'State'
FROM tickets 
LEFT JOIN state ON tickets.state = state.id
WHERE tickets.id = 1;

因此,如果我在门票中有一排 ticket.id = 1 和 ticket.state = 1 并且我在 state.id = 1 和 state.description = 'Open' 的状态中有一行

如何获得结果 Ticket Id = 1,State = Open?

编辑:这确实有效,由于某种原因状态表是空的......

4

2 回答 2

1

在我看来,这就是你从你写的查询中得到的......?

如果您想从您的数据库中获得确切的结果“Ticked Id =1,State = Open”,请查看 concat() 函数。如果您想将状态直接放入您的票证表中,我将首先添加一个新列,然后使用更新查询对其进行更新,然后删除旧的票证.state 列。或者,也许您真正需要的是使用上述查询定义的视图。

创建视图 ticketstate 作为 SELECT ticket.id ...

于 2012-07-01T13:42:54.090 回答
1

这好像

SELECT tickets.id AS 'Ticket Id', 
       state.description AS 'State'
FROM tickets 
LEFT JOIN state ON tickets.state = state.id
WHERE tickets.id = 1 and state.state = 'open';
于 2012-07-01T13:41:51.990 回答