2017-02-17 2 views
0

Любой способ улучшить этот код? Я пытаюсь отобразить все столбцы из B в то же время еще один столбец из C на основе имени файла сопоставления между B и CПРИСОЕДИНЯЙТЕСЬ двумя столами, только возврат сначала

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 AND 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; 
Смежные вопросы