如果其他表指向记录,则从表中选择数据。
如果其他表指向记录,则从表中选择数据。
这个问题已经在这里有了答案:
我在我的数据库中有两个表
--------- --------- | A | | B | |---------| |---------| | id | | id | | name | | a_id | --------- | name | ---------
我想要选择表A
中的所有记录,仅当存在指向表A
中记录的表B
中的一条记录时 (B.a_id = A.id
)。
我该怎么做呢? 我想要解释一下它是如何实现的,以便我可以理解它是如何完成的。
admin 更改状态以发布 2023年5月25日
使用 INNER JOIN
:
SELECT DISTINCT A.* FROM A INNER JOIN B ON B.a_id = A.id
由于使用了 INNER JOIN
,对于表 A
中的每一行,MySQL 会查找所有符合 JOIN
条件(B.a_id = A.id
) 的来自表 B
中的行。
SELECT
子句指示它只返回表 A
中的列 (A.*
),但由于联接的存在,表 A
中的一行可以与表 B
中的多行匹配。 DISTINCT
子句确保避免在结果集中多次输出相同的行。