Четыре критерия от A до D будут переданы в оператор WHERE SQL-запроса для извлечения информации из базы данных 1, содержащей соответствующие столбцы с одинаковыми именами. Я хочу, чтобы оператор SQL WHERE мог игнорировать два критерия, называемые B и C, когда значение критериев A также можно найти в базе данных 2, которая также содержит столбец с именем A, и сохранить эти два критерия в операторе WHERE. когда значение A не может быть найдено в столбце A базы данных 2.
Этот код написан на языке R. Я смотрю на базу данных и знаю, что должна появиться информация, если код работает так, как я хочу.
query <- paste(/*some select and from statements, these worked*/
"WHERE Database1.A = ?",
"AND",
"CASE ",
"WHEN (0 = SELECT COUNT(Database2.A) FROM Database2 WHERE Database.A = ?)",
"THEN Database1.D = ?",
"ELSE Database1.B = ?",
" END",
"CASE ",
"WHEN (0 <> SELECT COUNT(Database2.A) FROM Database2 WHERE Database.A = ?)",
"THEN Database1.C = ?",
" END",
"AND Database1.D = ?",
"ORDER BY Database1.E",
sep = " ")
sqlParams <- data.frame(
A = params$A,
A1 = params$A,
D = params$D,
B = params$B,
A2 = params$A,
C = params$C,
B1 = params$B
)
res <- sqlExecute(con, query, sqlParams,
fetch = TRUE, stringsAsFactors = FALSE)
Я смотрю на базу данных 1, и есть элементы, которые не имеют значения в столбцах B и C. Поэтому, если значение, которое я ввел в A, равно их значению в столбце A, должен быть список связанной информации об этом элементе. , тем не мение
сообщения об ошибке нет, но ничего не обнаружено.