当第一个表中的列值与第二个表中的列值匹配时,显示来自一个表的数据

时间:2015-07-24 15:49:17

标签: php mysql sql-server

我很难用这个。我有两个不同的表,即“离开”和“编辑数据”。我希望在出发的“名称”列中的数据与editor_data的“ven”列中的数据匹配时显示离开的数据。

我已经尝试过下面的SQL查询,但它无法正常工作。

 <?php

 SELECT Time, Location, Name FROM departure JOIN editor_data 
 ON departure.Name = editor_data.ven 

  ?>

e.g

出发表可以在“名称”字段中输入麦克风或礼仪。 因此,如果“editor_data”在“ven”列中的值为“mike”,那么它应该只显示与“mike”相关的数据并排除rite的数据。

2 个答案:

答案 0 :(得分:0)

仅选择editor_data.ven列中存在名称的出发表记录

SELECT Time, Location, Name FROM departure where name in (SELECT ven from editor_data); 

您的问题出现是因为您尝试根据不是PRIMARY KEY的列name值连接两个表。因此,连接条件失败并导致交叉连接,它返回所有存在的记录的笛卡尔积组合。因此,可以通过在所选(有限)值列表上调用子查询来避免该问题。

答案 1 :(得分:0)

所以这就是我如何运作

"SELECT Time, Location, Name FROM departure where Name LIKE (SELECT ven from editor_data where tour_id = '$id');"