仅供参考,我使用的是php和 MySQL 。
我想知道在" metas"中选择一些(和确定的)条目的最佳方式是什么?表将它们链接到主要元素。
有关更多解释,我有一张桌子"用户"其中包含主要信息:id,email,nickname。 我还有一张桌子," users_metas"其中包含许多不同的信息,其中包含一个信息条目(即entry1:user1的头像,entry2:user2的连接,......)。
现在,当我需要来自metas表的一些具体信息时,我这样做:
SELECT u.u_nickname, u.u_email, um1.um_value as u_avatar, um2.um_value as u_connection
FROM users as u
LEFT JOIN users_metas as um1 ON um1.um_uid = u.u_id AND um1.um_name = "avatar"
LEFT JOIN users_metas as um2 ON um2.um_uid = u.u_id AND um2.um_name = "connection_date"
WHERE u.u_id = :u_id
它有效,经过一些"基准测试"它比执行其他SELECT
查询更快:
SELECT u.u_nickname, u.u_email,
(SELECT um_value FROM users_metas WHERE um_uid = u.u_id AND um_name = "avatar") as u_avatar,
(SELECT um_value FROM users_metas WHERE um_uid = u.u_id AND um_name = "connection_date") as u_connection
...
但我想知道是否有更好的方法可以做到这一点。当然,metas表中不仅有avatar
和connection
个信息,还有很多其他信息。
谢谢你的建议。
我正在使用" metas"关于元素的各种信息的术语