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中的值将被填充.
标签:optimization,left-join,mysql,php 来源: https://codeday.me/bug/20191201/2077435.html