Вообще этим Max я решал задачу, чтоб у меня только одна строка добавлялась, я просто знаю, что они одинаковые и среди одинаковых выберется например первый, меня устраивает. Тип Text, но там числа. Я применил Max т.к. это единственное, что мне пришло в голову. Если подскажите как через Join добавлять только одну строку из второй таблицы из множества строк удовлетворяющих условию, например первую, буду Вам благодарен.
> Тип Text, но там числа. Что ж так-то? ;) > Я применил Max т.к. это единственное, что мне пришло в голову. Обычно как-то так и делают, да. > например первую В таблицах (relations) реляционных СУБД не бывает "первых" строк. Т.е. так, как Вы написали — вполне вариант. Если же нужно несколько полей из внешней таблицы, есть ещё вариант с LATERAL, что-то вроде: SELECT a.id, a."Name", b.field1, b.field2 FROM project."Power" AS a LEFT JOIN LATERAL ( SELECT p.field1, p.field2 FROM project."View_All_BD" AS p WHERE a."Device_dest" = b."XM_Name" ORDER BY p.field3 LIMIT 1 ) AS b ON true ORDER BY b.field2
Почитал, про LATERAL, в принципе его ипользовать правильнее, пробую, но он почемуто не знает LATERAL ?
Хмм... кто "он"? И что такое "не знает"? Вы примеры из документации пробовали?
)))))))), LATERAL, поставил после JOIN , сработало Конструкция чуть сложнее, но есть чёткий Limit 1, я так понимаю, работать должно быстрее. Хотя пока для меня скорость не играет роли )))) >Text выбрал, т.к. там может оказаться и текст, например "1a", как будет проходить сортировка в этом случае пока.... рушу когда придётся ))))) решил перейти на БД, тк. связка XLS и VBA уже утомила, особенно в части сортировок и выборок, как оказалось ваши БД именно эти задачи и решают )))))))), вот такой я древний. А вообще в конечном итоге из сгенерированных таблиц автоматом генерируются чертежи в AUTOCAD. Ещё раз, Спасибо Вам!
> LATERAL, поставил после JOIN , сработало Действительно, я опечатался, извините. > я так понимаю, работать должно быстрее. Суть была не в "быстрее", а в том, что когда Вам нужно вытащить какую-то запись внешней таблицы целиком (если из неё нужно несколько полей / все поля), это самый простой способ, кстати. > Ещё раз, Спасибо Вам! Да не за что! ;)
Обсуждают сегодня