![]() |
|
Запрос в 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? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |