1

我正在尝试在一个较大的数据库中选择少量记录并对其运行一些查询。

我对编程非常陌生,所以我很迷茫。

我需要做的是选择 Registraton# 列等于某个数字的所有记录,然后仅对这些结果运行查询。

如果需要,我可以提出数据库的外观和更详细的解释,尽管我认为这可能是一些我只是想念的简单的东西。

4

5 回答 5

1

过滤数据库中的记录是使用 WHERE 子句完成的。

例如,如果您想从 Persons 表中获取所有记录,其中 FirstName = 'David"

SELECT 
  FirstName, 
  LastName, 
  MiddleInitial, 
  BirthDate, 
  NumberOfChildren 
FROM 
  Persons 
WHERE 
  FirstName = 'David'

您的问题表明您已经弄清楚了很多,但只是错过了下一部分。

如果您需要在上述结果集的结果中查询只包括有两个以上孩子的人,您只需使用 AND 关键字添加到 WHERE 子句中。

SELECT 
  FirstName, 
  LastName, 
  MiddleInitial, 
  BirthDate, 
  NumberOfChildren 
FROM 
  Persons 
WHERE 
  FirstName = 'David'
   AND
   NumberOfChildren > 3

现在,在某些情况下您确实需要使用子查询。例如:

假设每个人都有一个PersonId,每个人都有一个FatherId,对应另一个人的PersonId...

PersonId  FirstName  LastName FatherId...
1         David      Stratton  0
2         Matthew    Stratton  1

Select FirstName, 
  LastName 
FROM 
  Person 
WHERE 
 FatherId IN (Select PersonId 
              From Person 
              WHERE FirstName = 'David')

将与一位名叫大卫的父亲一起归还所有孩子。(使用样本数据,将返回 Matthew。)

http://www.w3schools.com/sql/sql_where.asp

于 2012-08-14T16:17:50.553 回答
0

我不知道你到目前为止做了什么,但我想你有一个 SQL 查询,比如

SELECT col1, col2, col3
FROM table

附加 where 子句

SELECT col1, col2, col3
FROM table
WHERE "Registraton#" = number

请参阅 SO question SQL standard to escape column names?.

于 2012-08-14T16:15:49.377 回答
0

这对你有用吗?

SELECT * from table_name WHERE Regestration# = number
于 2012-08-14T16:15:49.117 回答
0

试试这个:

SELECT *
FROM tableName
WHERE RegistrationNo = 'valueHere'
于 2012-08-14T16:16:02.353 回答
0

我不确定我的解决方案。我建议您使用视图。您根据需要的记录创建视图。然后进行所需的查询,然后您可以删除该视图。

视图描述:视图包含行和列,就像真实的表一样。视图中的字段是来自数据库中一个或多个真实表的字段。

例子:

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

欲了解更多信息:http ://www.w3schools.com/sql/sql_view.asp

于 2012-08-14T16:17:28.930 回答