简单MySQL加入替换外键

时间:2012-07-01 13:34:03

标签: mysql join

我有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票据中有一行,其中ticket.id = 1和tickets.state = 1并且我的状态为state.id = 1且state.description ='Open'

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

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

2 个答案:

答案 0 :(得分: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';

答案 1 :(得分:1)

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

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

将view ticketstate创建为SELECT ticket.id ...