Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL*Plus查询:使用聚合进行表联接_Sql_Oracle - Fatal编程技术网

SQL*Plus查询:使用聚合进行表联接

SQL*Plus查询:使用聚合进行表联接,sql,oracle,Sql,Oracle,我需要两个查询这些表,我创建的,我有困难做它,任何帮助将不胜感激 对于所有化身,生成一个列表,显示化身名称、当前持有的武器总数以及当前持有的所有武器的总成本。除了这三个主要部分之外,我不想再显示更多的信息,所以我需要从表2和表3中获取信息 对于任何给定的用户电子邮件,即在运行时输入的电子邮件,按出生日期的相反顺序列出拥有的化身名称以及武器,包括该化身持有的武器名称、范围和成本 任何帮助都将不胜感激。我正在使用SQL*Plus。这些表不是很有效,所以任何改进都会受到欢迎,但主要是我需要这些查询的帮

我需要两个查询这些表,我创建的,我有困难做它,任何帮助将不胜感激

对于所有化身,生成一个列表,显示化身名称、当前持有的武器总数以及当前持有的所有武器的总成本。除了这三个主要部分之外,我不想再显示更多的信息,所以我需要从表2和表3中获取信息

对于任何给定的用户电子邮件,即在运行时输入的电子邮件,按出生日期的相反顺序列出拥有的化身名称以及武器,包括该化身持有的武器名称、范围和成本

任何帮助都将不胜感激。我正在使用SQL*Plus。这些表不是很有效,所以任何改进都会受到欢迎,但主要是我需要这些查询的帮助

CREATE TABLE users
()

CREATE TABLE avatars
()

CREATE TABLE weapons
()
如果您的查询依赖于电子邮件的唯一性,那么您应该在其上有一个唯一的密钥。 您的武器表上似乎没有范围列,但您在查询2的要求中暗示了这一点。无论如何,我已经包括了w.range。 在头像中,没有头像id可能应该被命名为头像id或只是id,而在武器中,武器id应该被命名为头像id。 您应该学习SQL教程。这里有一个:。
你试过写点什么吗?所以我不明白你的意思,如果你是说我试过了吗?是的,我有,但我只能从两个表或一个表中获取所有信息。我对此很陌生。我想说的是,你应该分享你尝试过的东西以及为什么它不起作用。否则,你看起来像是在要求别人为你写代码,这在这里是不受欢迎的。从头像中选择*从活动=1的用户中选择id,从电子邮件中选择id,如“E%”,我会使用类似的方式,但这列出了两个表中的所有列。不确定如何仅获取specificsjustreplace*和所需的列名。非常基本的SQL代码。我在“w”上得到了无效的标识符。“fk\u wp”。但我知道你想做什么。然而,我不知道为什么这个错误会持续下去。在第一次查询操作中,使用了fk_wp而不是武器id。修复了它,让我知道它是否有效。得到了一个新的错误,第2行-不是一组表达式。啊,是的,这种错误一直困扰着我;DBMS应该足够聪明,知道a.name对于a.no_wp_id的每个组都是唯一的。需要一个技巧来修复,我喜欢使用max。修复它,再试一次。
select
    max(a.name),
    count(1),
    sum(w.cost)
from
    avatars a
    inner join weapons w on w.weapon_id=a.no_wp_id
group by
    a.no_wp_id
;
select
    a.name,
    w.weapon_name,
    w.range,
    w.cost
from
    users u
    inner join avatars a on a.user_id=u.id
    inner join weapons w on w.weapon_id=a.no_wp_id
where
    u.email='given@email.com'
order by
    a.dateOfBirth desc
;