webForumDet fria alternativet

Hämta data från en av två tabeller eller nåt sånt...

Databaser & SQL

2 svar · 219 visningar · startad av nkrantz

Medlem sedan apr. 2002830 inlägg
Frågan#1

Har en språkdatabas i mysql. Uppbyggt så att i tabellen tbl_text så finns ett id samt en default text. I tabellen tbl_text_language ligger koppling mellan tbl_text och tbl_language, MAO:

tbl_text
text_id | default_text

tbl_text_language
text_id | langauge_id | text

tbl_language
language_id | name

Nu vill jag från ett text_id hämta antingen default_text eller text, beroende om det finns någon text...

Trodde att jag skulle kunna göra så att jag körde en fråga i stil med detta:

SELECT 
	tl.text, 
	t.default_text 
FROM 
	tbl_text AS t, 
	tbl_text_language AS tl 
WHERE 
	(
		(t.text_id = 68) 
	OR 
			(tl.text_id = 68 
		AND 
			tl.language_id = 1)
	)

Men den ville inte ge något resultat alls. Jag vill alltså ha ut både text och default_text om det finns, annars bara default_text.

Och eftersom anropet körs några gånger per sidvisning så skulle det vara bra om allt kommer med i en fråga! (Jag kan lösa det med två frågor, men det BÖR gå i en...)

Någon som vet?

// Nippe

Medlem sedan dec. 200012 464 inlägg
#2
SELECT tl.text, t.default_text 
FROM tbl_text AS t left join  tbl_text_language AS tl 
on t.text_id = 68
and t.text_id = t1.text_id
and tl.language_id = 1

Flyttas från databashanterare

Medlem sedan apr. 2002830 inlägg
#3

cool...

MEN, enligt http://www.webforum.nu/showthread.php?s=&postid=868497#post868497 skall den här tråden ligga i databashantere, det är den som enligt länken skall behandla mySQL. Och, ja, jag vet att mysql är en dbh och sql språket man kör, men ändå... En tydligare förklaring kanske... :birp

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)