jag har fölajande tabeller. members, cars och carsPic. Det är möjligt för användare som är registrerade alltså finns i tabellen members att ha flera bilar som lagras i cars, men man behöver inte ha någon bil. Vidare är det möjligt att ha flera kort på samma bil i tabellen carPics, men man behöver inte ha nåt kort på bilen. Naturligtvis upprepas medlemmen för varje rad som har med medlemmen att göra, och bilen för varje rad som har med bilen att göra, du kan ju inte hämta ett resultat där en medlemspost sträcker sig över flera rader. Jag vill ha ut alla medlemmar oavsett om de har bil eller inte. Jag vill ha ut alla bilar som hör till en medlem. Jag vill ha ut alla bilder på varje bil. Ja, då får du antingen hantera resultatet som det ser ut, eller hämta ut bilarna och bilderna i separata resultat. Om det inte duger med att få en massa upprepningar så måste du ändra din strategi i din applikation. Tex kan du lista alla medlemmar och loopa dig igenom och hämta bilar och i en subloop hämta alla relevanta bilder. Annars så är det som Göran säger självklart att det blir som du beskriver. Nä, det är sant som ni säger. Räkna hur många bilar användarna har: Tackar Göran, det löste sig med din hjälp IGEN :)Problem med SQLfråga
det jag vill göra är att plocka ut alla medlemmar samt bilnamnet från "cars" och bildnamnen från "carPics", går det? Jag har försökt med alla möjliga frågor men då en medlem har två bilar upprepas namnet två gånger. Har sen medlemen tre bilder på en av bilarna så upprepas det tre gånger.
Min sp ser ut så här nu
<code>
SELECT DISTINCT m.*, c.carName, cp.picName, mp.picName FROM members AS m
LEFT OUTER JOIN car AS c
ON m.userName = c.userName
LEFT OUTER JOIN carPhoto AS cp
ON m.userName = cp.userName AND cp.carID = c.carID
INNER JOIN memberPics AS mp
ON m.userName = mp.userName
</code>
Glömde tabellen memberPics men den ställer inte till något då varje medlem bara kan ha en bil i den tabellen.Sv: Problem med SQLfråga
Hur vill du ha ut resultatet?Sv:Problem med SQLfråga
Sv: Problem med SQLfråga
Sv: Problem med SQLfråga
Vill du lista medlemmar och joina på bilar så kommer en medlem med 2 bilar generera 2 rader med samma medlem och respektive bil. Hur skall man annars veta att dom hör ihop?
/JonasSv:Problem med SQLfråga
Går det på nåt sätt att ange en variabel som får ett värde säg 1 om medlemmen har nån bil? Jag behöver alltså inte ta ut namn eller bild på bilen. Om det går kan jag ju ange med ett liten grön bock eller på på sidan att medlemmen har bil och en länk till en bilsida.Sv: Problem med SQLfråga
select m.*, isnull(count(c.UserName),0) as cars
from members m
left join car c on c.userName = m.userName
group by m.*Sv:Problem med SQLfråga
Jag löste det så här.
SP
<code>
ALTER PROCEDURE [dbo].[getAllMembers]
AS
SELECT m.*, mp.picName, ISNULL(COUNT(c.UserName),0) AS cars
FROM members m
LEFT JOIN car c
ON c.userName = m.userName
INNER JOIN memberpics mp
ON m.userName = mp.userName
GROUP BY m.memberID, m.userName, m.fName, m.lName, m.address, m.zipCode,
m.city, m.phone, m.cellPhone, mp.picName
ORDER BY m.fName
</code>
.NET-koden
<code>
public string checkIfCar(object dataItem)
{
int haveCar = Int32.Parse(DataBinder.Eval(dataItem, "cars").ToString());
if (haveCar == 0)
return " har " + haveCar + " bilar.";
else if (haveCar > 1)
return " har " + haveCar + " bilar. SE BILAR";
else
return " har " + haveCar + " bil. SE BIL";
}
</code>
HTML sidan
<code>
<%# checkIfCar(Container.DataItem)%>
</code>
På detta sätt får jag ju ut alla medlemmar samt om de har bil eller inte. Jag får också ut bilden på medlemmen.