簡體   English   中英

用不同的值加入同一個表兩次

[英]Joining the same table twice with different values

我正在嘗試使用 ID 將“transfers.pickup_areas_group_id”和“transfers.drop_areas_group_id”的值替換為“areas_group”表中的值

我正在使用這個查詢:

SELECT 
transfers.id AS transfer_id, 
transfers.name AS transfer_name,  
transfers.pickup_areas_group_id AS transfer_pickup_areas_group_id,
transfers.drop_areas_group_id AS transfer_drop_areas_group_id, 
transfers_pricing.vehicle_id AS vehicle_id, 
transfers_pricing.date_start AS date_start, 
transfers_pricing.date_end AS date_end, 
transfers_pricing.price AS price 
FROM transfers
INNER JOIN transfers_pricing ON transfers_pricing.transfer_id = transfers.id

我嘗試了一個額外的 INNER JOIN 來替換第一個值“transfers.pickup_areas_group_id”,但我找不到替換第二個值“transfers.drop_areas_group_id”的方法

我試過這個查詢:

SELECT 
transfers.id AS transfer_id, 
transfers.name AS transfer_name,  
transfers.pickup_areas_group_id AS transfer_pickup_areas_group_id,
areas_group.area_id AS pickup_area_ids,
transfers.drop_areas_group_id AS transfer_drop_areas_group_id, 
transfers_pricing.vehicle_id AS vehicle_id, 
transfers_pricing.date_start AS date_start, 
transfers_pricing.date_end AS date_end, 
transfers_pricing.price AS price 
FROM transfers
INNER JOIN transfers_pricing ON transfers_pricing.transfer_id = transfers.id
INNER JOIN areas_group ON areas_group.id = transfers.pickup_areas_group_id

謝謝,

基本上,您需要再次加入areas_group 要消除對同一個表的兩個引用的歧義,您需要使用表別名。

實際上,對查詢中起作用的所有表使用表別名是一種很好的做法:這使得查詢的讀寫時間更短。

SELECT 
    t.id AS transfer_id, 
    t.name AS transfer_name,  
    t.pickup_areas_group_id AS transfer_pickup_areas_group_id,
    ag1.area_id AS pickup_area_ids,
    t.drop_areas_group_id AS transfer_drop_areas_group_id, 
    ag2.area_id AS drop_area_ids
    tp.vehicle_id AS vehicle_id, 
    tp.date_start AS date_start, 
    tp.date_end AS date_end, 
    tp.price AS price 
FROM transfers t
INNER JOIN transfers_pricing tp ON tp.transfer_id = t.id
INNER JOIN areas_group ag1 ON ag1.id = t.pickup_areas_group_id
INNER JOIN areas_group ag2 ON ag2.id = t.drop_areas_group_id

暫無
暫無

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

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