[英]Select a value from a table and use it to update a field of the same table
[英]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;
您可能要使用COALESCE
或IFNULL
IFNULL(U.name, P.name) AS username,
COALESCE(U.name, P.name) AS username,
在这种情况下,这两个都将做完全相同的事情。 如果U.name
不为NULL
则username
为U.name
,否则为P.name
。
在一定条件下使用UNION ALL ...希望对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.