Den här SQLen gör precis det jag vill (eller är i alla fall grunden till det jag vill göra). Men det verkar helt sjukt att skriva 1 = 1. Går det inte att skriva på något annat sätt?
SELECT * FROM tblArticle a
LEFT OUTER JOIN tblArticlePrice p ON a.ArticleId = p.ArticlePriceArticleId
RIGHT OUTER JOIN tblPriceList ON 1 = 1
WHERE a.ArticleId = 10143
SELECT * FROM tblArticle a
LEFT OUTER JOIN tblArticlePrice p ON a.ArticleId = p.ArticlePriceArticleId
cross JOIN tblPriceList
WHERE a.ArticleId = 10143
Jag vill att eftersom att tblPriceList innehåller två rader få ut två resultat.
Det är inte alltid säkert att det finns fält i tblArticlePrice kopplade till en viss artikel. Men jag vill alltid få ut två fält eftersom att det är en view och man sen ska kunna ställa frågor mot viewen.
Tack LarsG, såg mycket snyggare ut, men fungerar precis likadant.
Jag kanske förklarar konstigt så jag tror jag försöker förklara igen.
När jag joinar så vill jag ha ut två resultat av alla artiklar oberoende om de är kopplade till en prislista eller inte.
Som det är nu så verkar det som att allt bara gångas med två.
SELECT * FROM tblArticle a
CROSS JOIN tblPriceList l
LEFT OUTER JOIN tblArticlePrice p ON l.PriceListId = p.ArticlePricePriceListId AND a.ArticleId = p.ArticlePriceArticleId
WHERE a.ArticleId = 10148
ORDER BY ArticleId
262 ms totalt · 4 externa anrop · v20260731065814-full.05830320