我在这个问题上遇到了很大的困难。我有两个不同的表,即“出发”和“编辑数据”。我想当出发的“名称”列中的数据与 editor_data 的“ven”列中的数据匹配时显示出发的数据。
我尝试了下面的 SQL 查询,但它无法正常工作。
<?php
SELECT Time, Location, Name FROM departure JOIN editor_data
ON departure.Name = editor_data.ven
?>
例如
出发表的“名称”字段中可以有 mike 或 rite。 因此,如果“editor_data”在“ven”列中具有值“mike”,那么它应该只显示与“mike”相关的数据并排除 rite 的数据。
最佳答案
仅选择出发表中名称存在于editor_data.ven列中的记录
SELECT Time, Location, Name FROM departure where name in (SELECT ven from editor_data);
出现您的问题是因为您尝试根据不是主键的列name
值连接两个表。因此,连接条件失败并导致交叉连接,该交叉连接返回所有存在记录的笛卡尔积组合。因此,可以通过对选定的(有限的)值列表调用子查询来避免该问题。
关于php - 当第一个表中的列值与第二个表中的列值匹配时显示一个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614794/