php - 当第一个表中的列值与第二个表中的列值匹配时显示一个表中的数据

标签 php mysql sql-server

我在这个问题上遇到了很大的困难。我有两个不同的表,即“出发”和“编辑数据”。我想当出发的“名称”列中的数据与 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/

相关文章:

php - 无法使用 PHP 连接 MySQL 服务器

SQL:具有不同类型参数的 ISNULL 函数

php - 业务逻辑和模板之间如何交互?

PHP fatal error : Call to a member function GetFolderByType() on a non-object in

php - 如何修复 MySQL 中包含 '?' 个字符的列

mysql - 在 Doctrine2 的选择中使用比较作为别名

sql - 选择按日期将相同列分组到不同列中

sql唯一记录之谜

PHP + mySQL + Pdo 查询速度性能

php - 如何在 laravel 中获取每个用户 ID 的最新行?