0
这是我的场景。我有一个字段类型的事件表,其中值1 =食物,2 =食谱。简化,我的事件表有这样的结构:改进此查询以从不同表中获取数据
id | entity_id | user_id | type | timestamp | field1 | ... field n
场“ENTITY_ID”是指一种独特的自动增加值从“实体”表。食物和食谱表结构非常相似,具有entity_id和user_id字段。
我想要的是从最后10个寄存器的表事件中获取所有常用数据,并根据表事件的类型值获取相应表的一些必需字段。现在我已经取得了一些颇为相似,但不正是我想要的,与此查询:
SELECT a.*, b.name, b.field1, b.field2, c.name, c.field1, c.field2
FROM events a
LEFT JOIN foods b ON b.entity_id = a.entity_id
LEFT JOIN recipes c ON c.entity_id = a.entity_id
ORDER BY timestamp DESC LIMIT 10
此八方通将返回所有表中的所有领域,具有NULL值时,该字段为这个特定类型的不寄存器。 所以我想获取相应表的所有字段的事件表和名称,字段1,字段2。
编辑:
这里是sqlfiddle sqlfiddle.com/#!2/18d45/9我想查询基于表返回不同的字段值。在示例表中,食谱具有描述字段,而食物不具有描述字段。可能吗?
请帮助我这个!
请张贴一些示例数据,以及所期望的结果。最好的办法是制作一个sqlfiddle,以便我们可以尝试对数据进行不同的查询。 – Barmar
这里是sqlfiddle http://sqlfiddle.com/#!2/18d45/9 我想查询基于表返回不同的字段值。在示例表中,食谱具有描述字段,而食物不具有描述字段。可能吗? –