webForumDet fria alternativet
Logga in / Bli medlem

Join

Databaser & SQL

6 svar · 168 visningar · startad av Davida

Medlem sedan okt. 2000219 inlägg
Frågan#1

Jag använder en selectsats:

SELECT * FROM Tabell1, Tabell2 WHERE Tabell1.tabell2id=tabell2.id

Sedan skriver jag ut infon från mitt rs (fältet kommer från tabell2):

<%=rs("tbl2_namn")%>

Hur gör jag så att man visar blankt istället för att inte visa posterna där tabell1.tabell2id är tomt?

Medlem sedan dec. 19998 577 inlägg
#2

SELECT * FROM Tabell1, Tabell2 WHERE Tabell1.tabell2id=tabell2.id OR Tabell1.tabell2id = ''

Medlem sedan dec. 200012 464 inlägg
#3

Jag förstår inte vad du menar. Vad är tomt i detta sammanhang? Är det en outer join du vill ha, dvs att du får ut alla poster från tabell1 även om det inte finns någon matchande post i tabell2?

Vide

Jag förstår inte din fråga heller.

För varje rad i tabell1 där id = '' så kommer du att få alla rader i tabell2

Medlem sedan okt. 2000219 inlägg
#4

Ja, du har fattat precis det jag vill

Medlem sedan dec. 200012 464 inlägg
#5
SELECT * FROM Tabell1 left outer join
Tabell2 on Tabell1.tabell2id=tabell2.id

För de rader där de inte finns några matchande poster i tabell2 så blir det null i de kolumner som kommer från tabell2.

I VB-script kan man testa om ett värde i ett recordset är null med

if isnull(rs("kolumn")) then
Medlem sedan okt. 2000219 inlägg
#6

I min SQL-sats har jag ett gäng övriga Where-joinar, kan man bara lägga till det du skrev på slutet av SQL-satsen före ORDER BY?

Medlem sedan dec. 200012 464 inlägg
#7

Ja visst.

SELECT * FROM Tabell1 left outer join
Tabell2 on Tabell1.tabell2id=tabell2.id
where dcb in (4711,4712) 
  and qcb <> 'Quasi' 
order by tcb desc

Red: såg inte att du skrev join

Olika dbms tillåter olika konstruktioner

select * from t1,t2 left outer join t3
 on t2.id = t3.id 
where t1.id = t2.id

är korrekt enligt SQL-standard men godkänns inte av alla, i så fall får man skriva

select * from t1 inner join t2
on t1.id = t2.id left outer join t3
on t2.id = t3.id

vilket är funktionellt samma sak som ovan.
Har för mig att Access är värst i detta avseende och att den kräver att man har parenteser om ena join-delen

259 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)