В предыдущем question мне кажется, что моя проблема зависит от SQLite. Я упростил задачу следующим образом:Подстановочные знаки SQLite в Join
Say У меня есть две таблицы: table1 следующим
Name | col1
------------------------
Bob | B1
Mary Jane| M1
и table2 следующим образом:
Name | col2
------------------------------
Bob | B2
Mary | M2
То, что я хотел бы, чтобы присоединиться к этим вместе получим:
NameA | NameB |col1| col2
-------------------------------------
Bob | Bob | B1 | B2
Mary Jane | Mary | M1 | M2
Использование
SELECT tablea.Name as NameA, tableb.Name as NameB, tablea.col1, tableb.col2
FROM table1 as tablea
LEFT JOIN table2 as tableb
ON tablea.Name LIKE tableb.Name
я получаю в качестве выходного
NameA NameB col1 col2
1 Bob Bob B1 B2
2 Mary Jane <NA> M1 <NA>
, который является тем, что я бы ожидать. Теперь, если я использую символы следующим образом:
SELECT tablea.Name as NameA, tableb.Name as NameB, tablea.col1, tableb.col2
FROM table1 as tablea
LEFT JOIN table2 as tableb
ON tablea.Name LIKE '%'+tableb.Name+'%'
я получаю:
NameA NameB col1 col2
1 Bob <NA> B1 <NA>
2 Mary Jane <NA> M1 <NA>
Это даже не соответствует записи Боба ?!
Я что-то упустил? Это проблема с SQLite
?
Для полноты использования, я использую функцию sqldf
с R
, которая использует SQLite
.
Это действительно работает! Большое спасибо. Я предполагаю, что это стандартный оператор concatenate в SQLite. – Geoff
На самом деле, это стандартный оператор конкатенации во всех диалектах SQL, которые я знаю. Это немного несовместимо с большинством языков программирования, хотя ... – wvdz
Oh. Мой предыдущий вопрос хотя и дал ответы с '+' повсюду. – Geoff