我有一个meta
表看起来像这样多个简单连接比。多简单的选择
ID post_id meta_key meta_value
1 1 key_01 val
2 1 key_02 val
3 1 key_03 val
,我想所有的3个键和值。使用JOIN然后选择是否更慢? JOIN将使它容易得多,例如:
SELECT M1.meta_value AS key_01, M2.meta_value AS key_02, M3.meta_value AS key_04
FROM `meta` AS M1
JOIN `meta` M2 ON M2.post_id = 1 AND M2.meta_key = 'key_02'
JOIN `meta M3 ON M3.post_id = 1 AND M3.meta_key = 'key_03'
WHERE M1.meta_key = 'key_01'
我没有测试任何,但你应该明白我的意思。
为什么你需要这些列 - 这是一个更简单的查询,基于你想要的三个meta_key值来获取记录,并让你的应用程序适当地提取这些值。 – 2011-03-04 00:45:35