У меня есть две таблицы в моей SQLite базе одного таблица все (main
), другой является «Избранное» таблица (favorites
), и я хочу, чтобы загрузить Cursor
для моего ListView
и иметь звезду greyed или желтый, если его в favorites
. Обе таблицы имеют одинаковые столбцы, и я надеялся загрузить Cursor
с этими столбцами и дополнительный столбец favorite
, который может быть логическим или 1 или 0. Любимая строка просто копируется из таблицы main
, поэтому ее содержимое будет тоже самое. Затем, когда звезда нажата, обновите таблицу favorites
и вызовите notifyDataSetChanged()
на моем адаптере, и это должно обновить ListView
.SQLite две таблицы соответствия логики
Я пробовал использовать JOIN
и загружать таблицы с помощью псевдонимов AS
, но у меня проблемы. Может ли кто-нибудь помочь мне с SQLite-запросом для этого? Спасибо!
Благодарим вас за решение, но оно не работает для меня. Он возвращал только общие элементы, где я хотел иметь общие элементы, новый столбец с истинным и ложным для не общего. Однако вы указали мне в правильном направлении с ISNULL. Я использовал это с UNION ALL и двумя вызовами SELECT, чтобы получить то, что я хочу. Благодаря! – chis54
О, и я дублировал всю строку, потому что эта таблица также используется в других случаях. – chis54
@ chis54 Собственно, теперь я понимаю, что вы совершенно правы в вопросе, возвращающем только общие строки. Чтобы вернуть все элементы (не только общие), вам нужно выполнить «внешнее соединение» (это может быть правое соединение или левое соединение). – Merlevede