当我尝试使用mysql触发查询以连接3个表时,我收到以下错误:
错误代码:1064.您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便mahara.group_member在第6行的'group INNER JOIN as group_members ON group_id = member' 附近使用正确的语法
Mysql是:
SELECT `mahara.group.id` as group_id,
`mahara.group.name` as group_name,
`mahara.group_member.member` as member_id,
`mahara.group_member.group` as member_groupid,
`mahara.usr.id` as user_id
FROM `mahara.group` as group
INNER JOIN `mahara.group_member` as group_members ON group_id = member_id,
INNER JOIN `mahara.usr` as users ON member_id = user_id
LIMIT 0, 200;
Run Code Online (Sandbox Code Playgroud)
对于我的生活,我看不出我做错了什么.任何帮助赞赏.
干杯
我有一个任务是编写一个使用单个内连接和交叉连接的查询.我已经写过的应该返回相同结果的查询如下所示:
SELECT T.PRICE, S.ROW, S.NUMBER, M.TITLE
FROM
[cinema_no_keys].[dbo].[TICKET] T cross join
[cinema_no_keys].[dbo].[MOVIE] M cross join
[cinema_no_keys].[dbo].[SEAT] S cross join
[cinema_no_keys].[dbo].[SHOW] SH
WHERE
T.ID_SEAT = S.ID_SEAT AND
M.ID_MOVIE = SH.ID_MOVIE AND
SH.DATE_HOUR = T.DATE_HOUR
Run Code Online (Sandbox Code Playgroud) 嘿,在我最近开始的一个项目中,我很高兴.
我有8个表需要连接,以便所有表内容将显示1个单一查询
但我努力想出正确的查询,因为我对SQL很新
我已经制作了一个数据库图表,显示了密钥彼此之间的关系,不介意那些没有分配箭头的信息.

所以基本上我只想加入所有8个表,这样我就可以通过php脚本编写例如.
$ result = mysql_query("SQL");
$ row = mysql_fetch_array($ result);
$ id = $ row ["value"]; 当然我会使用某种循环来显示多个项目
它将以我的首页上的多个项目结束,这些项目应该由该类别中的最新项目显示,我希望并假设这是一个简单的连接位置.
但总而言之,我正在寻找的是一个SQL,它将8个表与1个查询连接起来,这样我就可以使用8个表中任意一个的任何信息.
我想我找到了一个有效的解决方案
SELECT *
FROM Deal d
INNER JOIN DealPrice dp ON d.Id = dp.DealId
LEFT JOIN DealMedia dm ON d.Id = dm.DealId
LEFT JOIN StorageFile sf ON dm.Id = sf.binId AND sf.name = 'original_t'
LEFT JOIN DealLocation dl ON d.Id = dl.dealid
LEFT JOIN Location l ON dl.location = l.id
LEFT JOIN DealCategoryAssoc dca ON d.Id = …Run Code Online (Sandbox Code Playgroud) 我在mysql数据库中有两个表:Table Cars和Table Comments.表格车辆具有自动递增的列ID和名称.对于表格汽车中的每个名称,我希望在表格注释中有一列,并在用户发布时发布评论.如何在不创建新行的情况下在空列中插入新值.基本上发生的事情是说我有这个数据库
X _ _
X _ _
X _ _
Run Code Online (Sandbox Code Playgroud)
而不是张贴
X _ X
X _ _
X _ _
Run Code Online (Sandbox Code Playgroud)
它正在插入新值
X _ _
X _ _
X _ _
_ _ X
Run Code Online (Sandbox Code Playgroud)
然后是下一个
X _ _
X _ _
X _ _
_ _ X
_ X _
Run Code Online (Sandbox Code Playgroud)
我查看了join函数,但似乎只连接了两列而不是一列的列.我也见过
SELECT @row := @row + 1 as row, t.*
FROM some_table t, (SELECT @row := 0) r
Run Code Online (Sandbox Code Playgroud)
但它没有得到很好的解释.我该如何工作?
这是一个想法:我有两个List<int>,我想List<int>在上面提到的列表中加入第三个,没有重复.我知道如何使用,.Union但我想在不使用LINQ的情况下实现这一点.到目前为止我有这个:
Console.WriteLine("Enter numbers for first list: ");
List<int> firstList = new List<int>{20, 40, 10, 10, 30, 80};
//Console.ReadLine().Split(' ').Select(int.Parse).ToList();
Console.WriteLine("Enter numbers for second list: ");
List<int> secondList = new List<int> {25, 20, 40, 30, 10 };
//Console.ReadLine().Split(' ').Select(int.Parse).ToList();
List<int> newList = new List<int>();
foreach (var item in firstList)
{
if (secondList.Contains(item))
{
continue;
}
}
newList.Sort();
newList.ForEach(p => Console.WriteLine(p));
Run Code Online (Sandbox Code Playgroud)
我实际上卡住了...我认为我需要迭代每个列表,如果项目相同,只需将它们添加到新列表中......但我似乎无法弄清楚如何做如果列表是不同的计数.有任何想法吗?
我有两张桌子。用户和帐户。
账户表:-
id | accountName | userId
--------------------
1 | natt | 1
2 | kelly | 2
3 | john | 3
Run Code Online (Sandbox Code Playgroud)
用户表:-
id | username |
--------------------
1 | natt@xyz.com |
2 | kelly@xyz.com |
3 | john@xyz.com |
4 | randy@xyz.com |
5 | jamie@xyz.com |
Run Code Online (Sandbox Code Playgroud)
预期输出:-
userId |
---------
4 |
5 |
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,表格id的users行为与表格foreign key中的一样accounts。我想获取每个没有关联的用户account(在我的示例中为 4,5)。我可以通过IN or NOT IN但这不是最快的方法。有人可以告诉我最快的方法吗?我正在使用 postgres。
当面试官要我加入三张桌子时,我接受了一次大谈.我可以口头描述不同类型的连接,但我冻结了.我正在寻找让我习惯这些类型的问题的东西,所以我可以预见如何解决它们.有人有可能推荐的任何SQL练习吗?
鉴于桌子的东西
IdStuff StuffName IdLanguage
------- --------- ----------
1 Stuff 1 1
1 Stuff 2 2
Run Code Online (Sandbox Code Playgroud)
和观点:vwLanguages
IdLanguage Name
---------- ----
1 Language 1
2 Language 2
3 Language 3
Run Code Online (Sandbox Code Playgroud)
我想获得:
IdStuff StuffName IdLanguage
------- --------- ----------
1 Stuff 1 1
1 Stuff 2 2
1 NULL 3
Run Code Online (Sandbox Code Playgroud)
我试过RIGHT JOIN,但我没有成功......
SELECT
S.IdStuff, S.StuffName, vwLanguages.IdLanguage
FROM
Stuff S
RIGHT JOIN vwLanguages ON vwLanguages.IdLanguage = S.IdLanguage
Run Code Online (Sandbox Code Playgroud)
问题是只显示了2行,语言1和语言2 ...
我有以下查询.我想像Oracle一样离开加入.我的意思是内连接与左连接如下.有没有办法在MS SQL Server中编写捷径左连接,如下面的Oracle是一个查询示例
SELECT tbla.Name FROM
tbla,tblb,tblc,tbld
WHERE
tbla.ID = tblb.ID
and tbla.ID = tblc.ID(+)--left join like oracle
and tbla.ID = tbld.ID
Run Code Online (Sandbox Code Playgroud) 我有 3 张桌子
branch-
br_id,
br_name
users
user_id
user_name
user_type (2 types 'owner' 'admin')
user_branch (associated branch )
user_branches (comma seperated branch ids in case of 'admin' type )
item
it_id
it_amount
it_owner
it_admin
it_activated
Run Code Online (Sandbox Code Playgroud)
这里每个项目都属于用户类型“所有者”
每个项目还与用户类型“admin”相关联
我想要的是分行列表以及相关的总金额和总计数
**Branch** **total** **total amount**
some branch Name 5 500
another Branch Name 7 780
Run Code Online (Sandbox Code Playgroud)
我如何在单个查询中做到这一点
我试过这个显示所有分支的数量
SELECT br_name,
count(it_id),
SUM(it_amount),
FROM branch
LEFT JOIN users ON FIND_IN_SET(br_id,user_branches)>0
LEFT JOIN item ON it_admin=ad_id
WHERE it_activated=1
GROUP BY br_name
Run Code Online (Sandbox Code Playgroud)
但我在所有分支机构的数量和金额都相同
join ×10
sql ×7
mysql ×3
sql-server ×3
c# ×1
cross-join ×1
database ×1
inner-join ×1
int ×1
left-join ×1
list ×1
php ×1
postgresql ×1