我有2个MySQL表A和B.
我想只从B中选择A中存在特定值的记录。
示例:
A有列:aID,名称
B有列:bID,aID,名称
我只想要来自B的记录,A中存在aID。
非常感谢。
答案 0 :(得分:3)
您需要执行INNER JOIN - 两个表中都存在的记录,或使用LEFT join,以显示A中存在的记录以及B中存在匹配的ID
一个很好的参考:
答案 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