Имя: Пароль:
IT
Веб-мастеринг
Запрос в MySQL
0 john_ddd
 
17.09.20
09:49
Добрый день,
Есть таблица products(id, name) в MySql
1 яблоко
3 груша
4 слива
Мне нужно передать список в запрос (1,2,3), чтобы получить такой результат:
1 яблоко
2 null
3 груша
Видимо нужно делать через вью и хранимую процедуру.
Можете подсказать текст запроса?
1 Ёпрст
 
гуру
17.09.20
10:06
(0)



select
  t2.id,t1.name
from table2 as t1 left join table1 as t2 on t2.id=t1.id
2 Turku
 
17.09.20
10:10
3 john_ddd
 
17.09.20
10:16
(0) т2 нету.
Конечно есть вариант создать ее и заполнить (1,2,3), а потом drop-нуть ее
4 john_ddd
 
17.09.20
10:17
(3) может есть более красивый вариант
5 arsik
 
гуру
17.09.20
10:18
(4) Подключить MySQL как внешний источник данных.
6 john_ddd
 
17.09.20
10:34
(5) нужно без 1с
7 Ёпрст
 
гуру
17.09.20
12:46
(3) create tamptable & insert
8 john_ddd
 
17.09.20
13:00
(7) спасибо.
Вроде оно.
Только получается, чтобы добавить 3 строчки нужно сделать 3 insert
9 john_ddd
 
17.09.20
13:14
(8)
один
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
10 trad
 
17.09.20
13:21
(9) вот это я понимаю, sql для человека
... а не то что этот ваш t-sql от ms
))
11 trad
 
17.09.20
13:22
(10) итить колотить, оказывается в t-sql так же можно
вот я лошара
12 john_ddd
 
17.09.20
13:50
(9) о вообще ненужен insert

CREATE TEMPORARY TABLE `tmp_table`
    SELECT
        1 as id
    UNION ALL
    SELECT
        2
    UNION ALL
    SELECT
        3;
    SELECT
        id
    FROM
        `tmp_table`
13 trad
 
17.09.20
14:10
(12) это как select into
14 trad
 
17.09.20
14:12
(13) ... в tsql
15 Пончик
 
17.09.20
16:39
Не нужно никаких инсертов и дополнительных таблиц. Все делается одним запросом:

SELECT * FROM (
    SELECT 1 id
    UNION SELECT 2
    UNION SELECT 3
) t
LEFT JOIN
`products` using (id)
16 Пончик
 
17.09.20
16:41
(12) Ты был на верном пути, только зачем-то создал временную таблицу.
17 мухомор777
 
17.09.20
19:54
18 john_ddd
 
17.09.20
23:09
(15)спасибо за вариант.
Теперь как в 1с два варинта использовать временные таблицы или подзапосы.
1с не рекомендует делать join к подзапросам.
19 Fram
 
18.09.20
00:02
(15) не думаю, что таблица products у него статичная
20 Пончик
 
18.09.20
17:43
(18) Смотря сколько у тебя там строк будет. Если несколько тысяч, то вообще без проблем. Если несколько миллионов, то придется делать дополнительную таблицу и создавать индексы.
При чем тут рекомендации 1С, если это MySQL?
Ошибка? Это не ошибка, это системная функция.