AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-35506

Agi Hammerthief's questions

Martin Hope
Agi Hammerthief
Asked: 2018-08-17 06:39:21 +0800 CST

扩展查询以包含附加列

  • 0

我有以下查询,它只给我(除了其他列)方向 ID:

SELECT Users.Name, Users.Surname, Transactions.Timestamp, AccessPoints.Description as Door, Readers.Direction
    FROM (Readers INNER JOIN (AccessPoints INNER JOIN Points_Readers ON AccessPoints.PointID = Points_Readers.PointID)
    ON Readers.ReaderID = Points_Readers.ReaderID) INNER JOIN (Transactions INNER JOIN (AccessNumbers INNER JOIN Users
    ON AccessNumbers.AccessNumberID = Users.AccessNumberID) ON Transactions.Number = AccessNumbers.Number)
    ON Readers.ReaderID = Transactions.ReaderID
    WHERE (Transactions.Timestamp>#2018-08-15  06:50:16#) ORDER BY Transactions.Timestamp;

我想要做的是Directions.DirectionsText通过加入ONReaders.Direction来扩展查询以包括在内。我在确定连接的确切位置时遇到了麻烦,这样我就不会一直在子句中出错。(我仍然没有弄清楚如何让子句与 Access 一起工作需要使用括号进行连接。)DirectionsDirections.DirectionFROMINNER JOIN

中的列Directions是Direction(数字)和DirectionText(字符串)

join ms-access
  • 1 个回答
  • 32 Views
Martin Hope
Agi Hammerthief
Asked: 2018-07-14 01:33:27 +0800 CST

如何获取列 x GROUPed BY 列 y 的值列表?

  • 0

我有以下表结构和数据(使用 Oracle DB 12c):

CREATE TABLE authors (
    aid NUMBER(38) GENERATED ALWAYS AS IDENTITY CONSTRAINT authors_pk PRIMARY KEY NOT NULL,
    fname VARCHAR2(100 CHAR) NOT NULL,
    sname VARCHAR2(150 CHAR) NOT NULL,
    dob NUMBER(4),
    gender CHAR(1 CHAR)
);

CREATE UNIQUE INDEX authors_uind ON authors (fname, sname, dob, gender); --- Combination of columns must be unique

INSERT INTO authors(sname, fname, dob, gender) VALUES('Codd', 'Edgar F', 1923, 'M');
INSERT INTO authors(sname, fname, dob, gender) VALUES('Date', 'Chris J', 1941, 'M');
INSERT INTO authors(sname, fname, dob, gender) VALUES('Darwin', 'Hugh', 1943, 'M');
INSERT INTO authors(sname, fname, dob, gender) VALUES('Lions', 'John', 1937, 'M');

CREATE TABLE publications (
    pid NUMBER(38) GENERATED ALWAYS AS IDENTITY CONSTRAINT publications_pk PRIMARY KEY NOT NULL,
    title VARCHAR2(150 CHAR) NOT NULL,
    written NUMBER(4)
);
CREATE INDEX publications_ind ON publications (title, written);

INSERT INTO publications(title, written) VALUES('A Relational Model of Data for Large Shared Data Banks', 1970);
INSERT INTO publications(title, written) VALUES('The Relational Model for Database Management', 1990);
INSERT INTO publications(title, written) VALUES('An Introduction to Database Systems', 2003);
INSERT INTO publications(title, written) VALUES('The Third Manifesto', 2000);
INSERT INTO publications(title, written) VALUES('Temporal Data and the Relational Model', 2002);
INSERT INTO publications(title, written) VALUES('Database in Depth: Relational Theory for Practitioners', 2005);
INSERT INTO publications(title, written) VALUES('Commentary on UNIX', 1976);

CREATE TABLE author_publications (
    aid NUMBER(38) REFERENCES authors (aid),
    pid NUMBER(38) REFERENCES publications (pid),
    CONSTRAINT author_publications_pk PRIMARY KEY (aid, pid)
);

INSERT INTO author_publications(aid, pid) VALUES(1, 1);
INSERT INTO author_publications(aid, pid) VALUES(1, 2);
INSERT INTO author_publications(aid, pid) VALUES(2, 3);
INSERT INTO author_publications(aid, pid) VALUES(2, 4);
INSERT INTO author_publications(aid, pid) VALUES(2, 5);
INSERT INTO author_publications(aid, pid) VALUES(2, 6);
INSERT INTO author_publications(aid, pid) VALUES(3, 4);
INSERT INTO author_publications(aid, pid) VALUES(3, 5);
INSERT INTO author_publications(aid, pid) VALUES(4, 7);

一个作者可能写了多本书,而一本书是由多个作者写的。

查询应该是什么样的,以便我在每本书(所有书籍)中得到一行,并将作者的姓名连接在一起。例如:

| Written | Title | PID | Authors |
|---------|-------|-----|---------|
| 1990 | THE THIRD MANIFESTO | 4 | DATE, DARWIN |
| 2002 | TEMPORAL DATA AND THE RELATIONAL MODEL | 8 | DARWIN, DATE |

注 1:第四列中作者姓名的顺序并不重要,一行中单个作者姓名后的逗号也不重要。

注 2:GROUP BY如果可以通过不同的方式获得所需的结果,则不需要使用子句。

我的查询如下:

--- Get a list of author names per title
SELECT p.written, upper(p.title), p.pid, concat(upper(a.sname), ', ') 
FROM publications p INNER JOIN author_publications apub on p.pid = apub.pid
INNER JOIN authors a on apub.aid = a.aid
GROUP BY p.pid
order by p.written, upper(p.title)
;

我收到的错误消息是“不是 GROUP BY 表达式”。(我不明白该语句的哪个特定部分失败或为什么失败。)有问题的行是 SELECT 语句的开头。

oracle oracle-12c
  • 1 个回答
  • 42 Views
Martin Hope
Agi Hammerthief
Asked: 2014-12-19 11:41:57 +0800 CST

DBEAVER:SQL 错误或缺少数据库(“,”附近:语法错误)

  • 0

我正在使用DBeaver(因为Base仅适用于 OS X)来处理SQLite数据库。当我尝试执行以下查询时,我收到错误消息“SQL 错误或缺少数据库(靠近“,:语法错误)”,即使我已经指定了数据库和表:

INSERT INTO `contacts`.`contacts` (`fname`, `sname`, `dob`) VALUES ('MTN', 'Account', NULL), ('A', 'Person', -20456000), ('Local', 'Police', NULL), ...;

contacts是数据库,包含一个名为contacts以下结构的表:

CREATE TABLE `contacts` (
    `cid` INTEGER NOT NULL AUTO_INCREMENT,
    `fname` TEXT NULL,
    `sname` TEXT NOT NULL,
    `dob` INTEGER NULL
);

我可以使用+按钮插入行,但我更喜欢执行批量插入。

我已经查看了 SQLite INSERT 文档,它看起来与 MySQL 的完全一样,所以我不明白为什么它很适合。

sqlite bulk-insert
  • 1 个回答
  • 6371 Views
Martin Hope
Agi Hammerthief
Asked: 2014-09-19 06:17:43 +0800 CST

使用 MySQL/PHP PDO,是否有“模拟”或空运行选项?

  • 2

(或者,理想情况下,PHP PDO)是否MySQL有某种方式来模拟事务而不实际提交它们?(我是否可以让MySQLPDO 像插入/删除/更新数据一样,而不实际提交任何INSERT, DELETEorUPDATE语句?)

“插入”的数据(人员 ID、企业 ID、电话号码 ID、电话类型 ID 等)应存储在某处,以便在需要时可以检索它们。在测试/开发期间不应将数据写入主数据库,只有当脚本完成并准备好用于生产时。

询问的原因是:在开发数据复制/传输脚本时,AUTO_INCREMENT在运行更改的导入脚本之前将测试数据从表中删除并重置是不方便的。

或者,我应该...

  1. 在脚本开始时在内存中创建我的表并在最后删除它们?
  2. 复制数据库(创建从属)以用于开发并在每次修改脚本时替换从属?

(大概会导入1000-2000人,每个人最多15个电话号码,每个人1个业务,每个人最多10个角色。)

transaction mysql-5.5
  • 2 个回答
  • 4185 Views
Martin Hope
Agi Hammerthief
Asked: 2014-08-21 07:15:03 +0800 CST

我如何证明删除外键的行为不会破坏现有数据?

  • 5

TL;DR:证明在实践中,alter table table_name drop foreign key constraint_name语句的执行不会破坏现有数据。重要的考虑是语句本身的执行;考虑事实后的数据更改无关紧要。(以此类推:打开马厩的门是有害的行为,而不是奔马。)

我的老板和我对是否在 MySQL/InnoDB 数据库中使用外键有不同意见。我支持使用它们来执行 RI 并利用ON DELETE CASCADEand ON UPDATE RESTRICT/ SET NULL,而他反对(相信他可以在应用程序级别执行 RI)。

他的论点主要是:

  1. Drupal 不使用它们并且没有它们也能很好地相处,那么我们为什么要这样做呢?
  2. 当您需要更改数据和/或结构时,它们太不灵活了。
  3. 他已将它们从现有表中删除以进行更改,这导致数据损坏仅在数周或数月后才会在高流量/高活动站点上引起注意,因此他宁愿不使用它们。

我的论点主要是:

  1. 并非 Drupal 5-7 (MyISAM, SQLite 3) 支持的所有数据库/数据库引擎都默认强制执行FK,因此 Drupal 仅将它们保留为文档,而在 D8 中可能会有所不同。
  2. 是的,处理它们可能会很痛苦,但问题可能在于开发人员的规划/设计不佳,而不是 FK。
  3. 当然,在 DBMS 级别不使用 FK 执行 RI 比其他方式更有可能导致数据损坏。(例如,当现有内容引用必须具有特定状态的用户时,D6 的用户引用模块不限制更改用户状态)。
  4. 让代码做/尝试 DBMS 已经做的事情是浪费时间和资源。他怎么能保证他的代码和 DBMS 一样好(或更好)?

本质上,如果我能证明删除外键本身的行为(不管后续数据插入/更新)不会破坏现有数据,他就会接受我的想法。我无法清楚地证明它们的有用性/优势,因为除了将执行前的数据与执行后的数据进行比较之外,我不确定如何令人满意地观察/记录 adrop foreign key在执行后立即产生的效果。

那么,我如何说服我的老板我们应该使用外键,证明以后删除/更改它们的行为不会破坏现有数据,而使用它们不会引起任何问题?我将如何最好地设置实际使用测试?

注意:我并不是很想证明我是正确的(从自负的角度来看)使用 FK,但是在 DBMS 级别使用它们比在应用程序代码中更有益于数据和应用程序代码等级。

mysql database-design
  • 5 个回答
  • 2277 Views
Martin Hope
Agi Hammerthief
Asked: 2014-03-19 04:13:48 +0800 CST

“Vacuum”在 Menial 的 Base 2 应用程序中有什么作用?

  • 2

我查看了Base 2的帮助文档以及 Menial 的产品页面,但没有在那里找到答案。我什至点击了vacuum按钮,但没有注意到任何变化。那个按钮有什么作用?

sqlite mac-os-x
  • 1 个回答
  • 207 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve