用于选择多个记录的SQL查询

时间:2012-02-07 18:31:25

标签: mysql sql

我有9个字段,我需要查看这些字段中具有特定ID集的所有数据。可以有人告诉我SQL查询吗?

Ex:数据库包含100条记录。我需要从字段BusID中选择20个ID的列表,并且它是相应的行。

SELECT * 
FROM `Buses` 
WHERE `BusID` I am stuck after this.. how do I put in the list of 20 BusIds here?

7 个答案:

答案 0 :(得分:20)

如果您知道ID列表,请尝试以下查询:

SELECT * FROM `Buses` WHERE BusId IN (`list of busIds`)

或者如果你从另一个表中提取它们list of busIds可能是另一个子查询:

SELECT * FROM `Buses` WHERE BusId IN (SELECT SomeId from OtherTable WHERE something = somethingElse)

如果您需要与另一个表进行比较,则需要加入:

SELECT * FROM `Buses` JOIN OtheTable on Buses.BusesId = OtehrTable.BusesId

答案 1 :(得分:10)

你可以试试这个        SELECT * FROM Buses WHERE BusID in(1,2,3,4,...)

答案 2 :(得分:6)

您正在寻找the IN() clause

SELECT * FROM `Buses` WHERE `BusID` IN (1,2,3,5,7,9,11,44,88,etc...);

答案 3 :(得分:5)

我强烈建议使用小写字段|列名称,它会让您的生活更轻松。

假设您有一个名为users的表,其中包含以下定义和记录:

id|firstname|lastname|username             |password
1 |joe      |doe     |joe.doe@email.com   |1234
2 |jane     |doe     |jane.doe@email.com  |12345
3 |johnny   |doe     |johnny.doe@email.com|123456

让我们说你想从表用户那里得到所有记录,然后你做:

SELECT * FROM users;

现在让我们假设您要从表用户中选择所有记录,但您只对字段id,firstname和lastname感兴趣,从而忽略用户名和密码:

SELECT id, firstname, lastname FROM users;

现在我们想要根据条件检索记录,你需要做的是添加WHERE子句,让我们说我们只想从用户那里选择那些username = joe.doe@email.com和密码= 1234,你要做的是:

SELECT * FROM users
WHERE ( ( username = 'joe.doe@email.com' ) AND ( password = '1234' ) );

但是,如果您只需要username = joe.doe@email.com和密码= 1234的记录的ID,该怎么办?然后你做:

SELECT id FROM users
WHERE ( ( username = 'joe.doe@email.com' ) AND ( password = '1234' ) );

现在回答你的问题,正如我之前的其他人所说,你可以使用IN条款:

SELECT * FROM users
WHERE ( id IN (1,2,..,n) );

或者,如果您希望限制在id 20和id 40之间的记录列表,那么您可以轻松地写:

SELECT * FROM users
WHERE ( ( id >= 20 ) AND ( id <= 40 ) );

我希望这能让你有更好的理解。

答案 4 :(得分:4)

请尝试以下代码:

SELECT *
FROM users
WHERE firstname IN ('joe','jane');

答案 5 :(得分:2)

您想将IN()条款添加到WHERE

SELECT * 
FROM `Buses` 
WHERE `BusID` IN (Id1, ID2, ID3,.... put your ids here)

如果您有一个存储在表格中的ID列表,您也可以这样做:

SELECT * 
FROM `Buses` 
WHERE `BusID` IN (SELECT Id FROM table)

答案 6 :(得分:0)

我有3个字段可以从Oracle数据库中获取,其中用于外汇和货币应用程序。

选择买入价 FRBU.CURRENCY 所在位置 CURRENCY.MARKET = 10和CURRENCY.CODE IN(“ USD”,“ AUD ','SGD')