Я пытаюсь выбрать из таблицы, где значения одного из столбцов равны значениям списка. Например:

TABLE
------------
ID    price
a     100
b     200
...
z     2600

Список python: ["a", "d", "e"]. И я хочу найти цены на каждый из этих идентификаторов. Очевидный способ сделать это - выполнить JOIN по идентификатору, но этот список не является таблицей. что я должен делать?

0
WindowsMaker 10 Окт 2013 в 05:32
1
Для этого не требуется соединение. См .: stackoverflow.com/questions / 283645 /…
 – 
William Gaul
10 Окт 2013 в 05:50
Говорят, что и таблица, и список огромны. строка, соединенная с предложением WHERE, была бы крайне неэффективной
 – 
WindowsMaker
10 Окт 2013 в 06:03

1 ответ

Лучший ответ

Вы можете записать список во временную таблицу и присоединиться к ней. Чтобы сделать соединение более эффективным, убедитесь, что по крайней мере один из столбцов соединения (предпочтительно столбец меньшей таблицы) проиндексирован.

Однако, если список не слишком длинный, вы можете просто использовать оператор IN:

SELECT *
FROM MyTable
WHERE ID IN ('a', 'd', 'e')
3
CL. 10 Окт 2013 в 12:31