mysql join не получает ответа - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть две таблицы: donaTypes и fullInfo.

fullInfo:

id          funddesc        giftamt        giftdate
001        annual fund       50.00          2010-03-09
223        alumni fund       25.00          2009-03-06
334        capital exp      100.00          2011-09-27
...            ...            ...               ...

donaTypes:

   id           donaType
    1          annual fund
    2          capital exp
    3          alumni fund

I 'я пытаюсь найти совпадение, где fullInfo.funddesc = donaTypes.donaType, с надеждой вставить число donaTypes.id в таблицу fullInfo.Вот мой код, но я просто получаю пустой ответ (без ошибок):

SELECT st1.funddesc, st2.donatype
FROM 

(select t1.funddesc
from fullInfo as t1) st1

inner join

(select t2.donatype
from donatTypes as t2) st2

on trim(st1.funddesc) like trim(st2.donaType)
; 

Я также пытался:

SELECT t1.funddesc, t2.donatype 
FROM fullInfo as t1, 
donatTypes as t2
where trim(t1.funddesc) = trim(t2.donatype);

В идеале, я бы хотел, чтобы fullInfo выглядел так:

fullInfo:

id          funddesc        giftamt        giftdate
001             1            50.00          2010-03-09
223             3            25.00          2009-03-06
334             2           100.00          2011-09-27
...            ...            ...               ...

1 Ответ

2 голосов
/ 09 декабря 2011

Держите это немного проще, пока вы не отладите его. Вам не нужны вложенные запросы. И, LIKE, на самом деле не очень хорош для объединений, потому что это может быть немного неразборчиво.

SELECT fi.funddesc, dt.donaType
  FROM  fullinfo fi
  JOIN donatTypes dt on trim(fi.funddesc) = trim(dt.donaType)

Возможно, вы захотите сделать что-то подобное с вашими двумя таблицами, просто чтобы выяснить, какие вещи у вас есть в столбцах соединения.

SELECT COUNT(*), concat('>>>',TRIM(funddesc),'<<<') 
  FROM fullinfo 
 GROUP BY concat('>>>',TRIM(funddesc),'<<<')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...