假设:
用户
id | name | address
伙伴
id | name | company | address
即使表格不同,有时也必须将用户或合作伙伴ID关联到同一个函数。
例如,访问表
ACL
uri | uid | group | operations
此处“uid”可以是用户和合作伙伴。
如何使用相同的别名读取2个表的数据? 类似的东西:
$selectQuery = <<<QUERY
SELECT A. *,
U.name P.name AS username,
G.name AS groupname
FROM [acl] A
LEFT JOIN [users] U ON A.uid = U.id
LEFT JOIN [partner] P ON A.uid = P.id
LEFT JOIN [groups] G ON A.gid = G.id
WHERE A.id =: id
LIMIT 0.1
QUERY;
答案 0 :(得分:1)
您可能想要使用COALESCE
或IFNULL
IFNULL(U.name, P.name) AS username,
COALESCE(U.name, P.name) AS username,
在这种情况下,这两者都会做同样的事情。如果U.name
不是NULL
,那么username
将是U.name
,否则它将是P.name
。
答案 1 :(得分:0)
使用UNION UN条件......它应该有希望