[英]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.