簡體   English   中英

MySQL:另一張表中的一行中有多個ID

[英]MySQL: Multiple ids in one row from another table

這可能有點令人費解,但我會試一試。

我有一個包含事件數據的表:

| id | event | from_location | to_location |
|  1 |  move |            12 |          14 |
|  2 |  move |            13 |          15 |

而from位置和to位置則是在另一個

| id | name    |
| 12 | london  |
| 13 | paris   |
| 14 | newyork |
| 15 | tokyo   |

我的問題是,我需要根據位置搜索第一個表,但是要在第二個表中使用名稱,並且我想通過一個查詢盡可能簡單地進行搜索。

如果是一列,那么我可以進行聯接並使用可用的名稱,但是由於是兩列,因此不起作用。

我可以在第一個表中搜索名稱,然后獲取ID,使用該名稱搜索另一個表-但我想在一個查詢中進行搜索。

所以我的問題-是否有一種方法可以簡單地用相應的名稱替換ID-然后在一個查詢中進行搜索?

我還要說一件事-我沒有設置。 如果有的話,我會完全放棄使用id,而只是使用名稱作為鍵。 但是現在就這樣-假設我無法更改此設置。

謝謝

如果要檢查發件人或目的地是否是特定位置:-

SELECT event_data.id, event_data.event, event_data.from_location, event_data.to_location 
FROM event_data
INNER JOIN locations l1 ON event_data.from_location = l1.id
INNER JOIN locations l2 ON event_data.to_location = l2.id
WHERE l1.name = 'somewhere'
OR l2.name = 'somewhere'

如果您要從某個位置到另一個特定位置

SELECT event_data.id, event_data.event, event_data.from_location, event_data.to_location 
FROM event_data
INNER JOIN locations l1 ON event_data.from_location = l1.id
INNER JOIN locations l2 ON event_data.to_location = l2.id
WHERE l1.name = 'somewhere'
AND l2.name = 'somewhereelse'

暫無
暫無

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

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