在具有相同别名的2表上选择相同的字段

时间:2013-12-13 10:00:47

标签: php mysql sql

假设:

用户

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;

2 个答案:

答案 0 :(得分:1)

您可能想要使用COALESCEIFNULL

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条件......它应该有希望