php-基于用户级别的不同mysql连接查询

我正在寻找一种想法或最佳实践来执行以下操作:

我有桌子:
个人资料包含基本信息(ID,电子邮件,通过,lvl)
profile_user包含(pid,名称,年龄等.)
profile_mod包含(pid,company_name,money等.)

如您所见,我将在两个表上进行左联接以获取全部信息,但是联接将全部基于lvl属性.如果lvl = 1,它将在profile_user上左连接,而lvl = 2将在profile_mod上执行连接.

我的问题是,我不想对每个查询执行检查以获取lvl,然后在其他两个表上执行leftjoin.我想知道这种情况是否有最佳实践.

解决方法:

你可以做:

SELECT    *
FROM      profile a
LEFT JOIN profile_user b ON a.id = b.pid AND a.lvl = 1
LEFT JOIN profile_mod  c ON a.id = c.pid AND a.lvl = 2

如果lvl为1,则将填充profile_user中字段的值,而profile_mod中的值将为NULL.

同样,如果lvl为2,则profile_user中字段的值将为NULL,但profile_mod中的值将被填充.

上一篇:数值优化(Numerical Optimization)(2)-信赖域法


下一篇:如何在Java中实现有效的超时