我有两个表,一个是category
表,字段为
id , name, created_by, created_date, modify_by, modify_date, status
(请注意created_by& modify_by将包含来自用户表的用户ID)
和其他表格user
,其中列为
id, name, role and many more
我必须在网页上列出类别,其中包含创建新类别的用户的名称以及修改类别的用户的名称
我正在使用以下SQL查询来获取created_by用户名,还使用modify_by用户名来显示在列表中
BEGIN
SELECT cat.id,cat.name, cate.name as parentname, cat.parent_id,
cat.created_by, cat.created_date, cat.modify_by, cat.modify_date,
user.firstname
FROM `category`as cat
INNER JOIN `user` ON cat.created_by = user.id
LEFT JOIN category as cate ON cate.id = cat.parent_id;
END
我应该在此查询中添加什么来从其id获取amemodifier用户n,这可能与创建者ID不同?
或者我是否必须为获取修饰符名称编写单独的查询?
答案 0 :(得分:0)
只需添加另一个具有不同表别名的用户连接即可。
int main(){
int n;
cin >> n;
vector<int> arr(n);
for(int i =0; i < n; i++){
cin >> arr[i];
}
for(int i = n-1; n-1 >= 0; i--){
cout << " "<< arr[i] << " ";
}
return 0;
}
答案 1 :(得分:0)
您需要使用不同的别名对该表进行两次连接。
from ctypes import *
libc = cdll.msvcrt
libc.pow.argtypes = [c_double, c_int]
libc.pow.restype = c_double
libc.pow(2.3, 2)
答案 2 :(得分:0)
如果没有错,您需要加入USER
表两次
SELECT cat.id,
cat.NAME,
cat.NAME AS parentname,
cat.parent_id,
cat.created_by,
cat.created_date,
cat.modify_by,
cat.modify_date,
c.firstname AS created_user,
m.firstname AS modified_user
FROM categoryas cat
LEFT JOIN USER c
ON cat.created_by = c.id
LEFT JOIN USER m
ON cat.modify_by = m.id;
如果created_by
列永远不会是NULL
,那么您可以将LEFT JOIN USER c
更改为INNER JOIN USER c