2017-02-17 94 views
0

任何方式來改善此代碼?我想在C基於文件名,B和C之間的匹配,同時顯示所有B列一個其他列加入兩個表格,只返回第一個

SELECT B.filename, B.request_num, B.attachment_name, 
B.date_time, B.received_date, B.ID, C.station_code 
FROM B_attachments B 
JOIN C_fact C ON C.filename = B.filename 
WHERE C.station_code LIKE '%OAK%' 

什麼我問的是,如果有反正我也許可以使用SELECT *在這不是寫出所有的列名。使用SELECT *將返回B和C中的所有列。我只想B和C中的一列。我需要這個,因爲我將複製這些代碼的列數多於B的其他表。使用LEFT JOIN並沒有幫助我無論是。

任何幫助將不勝感激。由於

回答

1
SELECT B.*, C.station_code 
FROM ... 

應該這樣做。

+0

謝謝!這個竅門! –

1
SELECT B.*, C.station_code 
FROM B_attachments B 
JOIN C_fact C ON C.filename = B.filename 
WHERE C.station_code LIKE '%OAK%' 

這應該做的伎倆

0

我覺得這符合你的規格(「使用SELECT *,而不是寫出來的所有列名的」,「提高代碼」):

SELECT * 
    FROM B_attachments 
     NATURAL JOIN 
     (SELECT filename, station_code 
      FROM C_fact 
      WHERE station_code LIKE '%OAK%') C; 
相關問題