|
Вопрос по SQL |
☑ |
0
lanc2233
30.04.18
✎
13:10
|
INSERT INTO product
(code,brand_id,name)
VALUES('1', Ид бренда ,'test',)
Чтобы получить Ид бренда, нужно выполнить
Select brand_id from brands where name = 'some_brand'
Можно ли это сделать одним запросом ?
|
|
1
shuhard
30.04.18
✎
13:11
|
(0) угу
|
|
2
youalex
30.04.18
✎
13:16
|
(0) ты уже все написал)
|
|
3
shuhard
30.04.18
✎
13:19
|
(2) =)
|
|
4
lanc2233
30.04.18
✎
13:20
|
Че просто, вместо Ид бренда Селект подставить?
А что будет если ошибка в базе, и две строки с таким наименованием?
|
|
5
youalex
30.04.18
✎
13:22
|
(4) вместо values
|
|
6
youalex
30.04.18
✎
13:29
|
хотя, можно и вместо ид, как-то так:
insert into @b(f1, f2)
values ((select top 1 f1 from @a), 8)
|
|
7
rphosts
30.04.18
✎
14:29
|
(4) бери максимум (или минимум)
|
|
8
youalex
30.04.18
✎
16:27
|
(4) >>А что будет если ошибка в базе, и две строки с таким наименованием?
это, на самом деле, такой вопрос. Ты можешь обойти эту ошибку через TOP1, или, как в (7) - через агрегатную функцию.
С одной стороны, ты обойдешь ошибку, и она не будет выскакивать. С другой стороны, может быть, лучше она сразу выскочит, чем ты допустишь неопределенность(случайность) результата со всеми вытекающими.
|
|
9
lanc2233
30.04.18
✎
17:14
|
Спасибо
|
|