我有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?
答案 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')