从一个表中选择另一个表中存在列值的记录

时间:2014-11-05 15:04:41

标签: mysql select join

我有2个MySQL表A和B.

我想只从B中选择A中存在特定值的记录。

示例:

A有列:aID,名称

B有列:bID,aID,名称

我只想要来自B的记录,A中存在aID。

非常感谢。

6 个答案:

答案 0 :(得分:3)

您需要执行INNER JOIN - 两个表中都存在的记录,或使用LEFT join,以显示A中存在的记录以及B中存在匹配的ID

一个很好的参考:

joins

答案 1 :(得分:1)

您需要进行加入,如果您不想从表b中检索任何内容,只需返回表a中的值。

这应该有效

select b.* from b join a on b.aID=a.aID

答案 2 :(得分:0)

以下查询也会有效并且有效

SELECT * FROM B 
WHERE B.aID IN (SELECT DISTINCT aID FROM A)

答案 3 :(得分:0)

你可以像这样使用连接。

Select b.col1,b.col2... From tableB b inner join table tableA a on b.field = a.field

答案 4 :(得分:0)

您只需要在表A和B之间进行简单的内部联接。由于它们与aID列相关,您可以使用它将它们连接在一起:

SELECT b.*
FROM tableB b
JOIN tableA a ON a.aID = b.aID;

这将只选择tableA中tableB的aID值所在的行。如果没有连接,则行不能包含在连接中。

虽然我建议使用连接,但您也可以使用子查询替换它,如下所示:

SELECT *
FROM tableB
WHERE aID NOT IN (SELECT aID FROM tableA)

答案 5 :(得分:-1)

您是否尝试过使用LEFT JOIN?

SELECT b.* FROM tableB b LEFT JOIN tableA a ON b.aID = a.aID