Вход | Регистрация
 

Запрос в MySQL

Запрос в MySQL
Я
   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
   Turku
 
2 - 17.09.20 - 10:10
   john_ddd
 
3 - 17.09.20 - 10:16
(0) т2 нету.
Конечно есть вариант создать ее и заполнить (1,2,3), а потом drop-нуть ее
   john_ddd
 
4 - 17.09.20 - 10:17
(3) может есть более красивый вариант
   arsik
 
5 - 17.09.20 - 10:18
(4) Подключить MySQL как внешний источник данных.
   john_ddd
 
6 - 17.09.20 - 10:34
(5) нужно без 1с
   Ёпрст
 
7 - 17.09.20 - 12:46
(3) create tamptable & insert
   john_ddd
 
8 - 17.09.20 - 13:00
(7) спасибо.
Вроде оно.
Только получается, чтобы добавить 3 строчки нужно сделать 3 insert
   john_ddd
 
9 - 17.09.20 - 13:14
(8)
один
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
   trad
 
10 - 17.09.20 - 13:21
(9) вот это я понимаю, sql для человека
... а не то что этот ваш t-sql от ms
))
   trad
 
11 - 17.09.20 - 13:22
(10) итить колотить, оказывается в t-sql так же можно
вот я лошара
   john_ddd
 
12 - 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`
   trad
 
13 - 17.09.20 - 14:10
(12) это как select into
   trad
 
14 - 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) Ты был на верном пути, только зачем-то создал временную таблицу.
   мухомор777
 
17 - 17.09.20 - 19:54
   john_ddd
 
18 - 17.09.20 - 23:09
(15)спасибо за вариант.
Теперь как в 1с два варинта использовать временные таблицы или подзапосы.
1с не рекомендует делать join к подзапросам.
   Fram
 
19 - 18.09.20 - 00:02
(15) не думаю, что таблица products у него статичная
   Пончик
 
20 - 18.09.20 - 17:43
(18) Смотря сколько у тебя там строк будет. Если несколько тысяч, то вообще без проблем. Если несколько миллионов, то придется делать дополнительную таблицу и создавать индексы.
При чем тут рекомендации 1С, если это MySQL?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.