Соединить таблицу с различными значениями первичного ключа - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу объединить две таблицы с различными значениями первичного ключа, как показано ниже

Таблица A

id     name
1      John
2      Smith

и Таблица B

id     name
1-x    Foo
2-x    Bar

Я пытался использовать НРАВИТСЯ заявления на мой запрос, но он не остановится.

SELECT * FROM A a JOIN B b ON a.id LIKE b.id +'%'

Есть ли эффективный способ присоединиться к этим двум таблицам?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Нет, нет эффективного способа присоединиться к ним.

Это не значит, что это невозможно (возможно), но, вероятно, не имеет смысла.

Первичные ключи не должны быть красивыми или сексуальными. Это уникальные идентификаторы строк. Если у вас есть первичный ключ с таким значением, то это потому, что вы, вероятно, хотите раскрыть его или отобразить где-нибудь; и это не является их целью.

Если вам нужен красивый идентификатор строки, я предлагаю вам создать вторичный уникальный столбец, который можно даже автоматически генерировать.

Внизу, оставьте первичный ключ простой .

0 голосов
/ 05 февраля 2020

Если вы используете такой запрос:

SELECT *
FROM A a JOIN
     B b
     ON a.id || '-x' = b.id;

Тогда SQLite сможет использовать индекс для B(id) для запроса. Стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...