繁体   English   中英

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

[英]Select same field on 2 table with same alias

假设这:

用户

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;

您可能要使用COALESCEIFNULL

IFNULL(U.name, P.name) AS username, 
COALESCE(U.name, P.name) AS username, 

在这种情况下,这两个都将做完全相同的事情。 如果U.name不为NULLusernameU.name ,否则为P.name

在一定条件下使用UNION ALL ...希望对您有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM