簡體   English   中英

當第一個表中的列值與第二個表中的列值匹配時,顯示一個表中的數據

[英]Display data from one table when a column value in first table matches column value in second table

我很難過這個。 我有兩個不同的表,即“出發時間”和“編輯者數據”。 當離開的“名稱”列中的數據與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值(不是PRIMARY KEY)聯接兩個表。 因此,聯接條件失敗並導致交叉聯接,該聯接返回存在的所有記錄的笛卡爾乘積組合。 因此,可以通過在選定的(有限)值列表上調用子查詢來避免此問題。

這就是我的工作方式

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM