EclipseMedlem sedan juli 20003 825 inlägg Alltså, något komplicerat problem.
Jag har [users] med olika fält, [x_admin] [x_member] där jag sett till att bara det ENA kan vara TRUE. Man kan antingen vara admin ELLER member, inte båda samtidigt. Okej?
Nu är det så att i en viss frågeställning (som jag verkligen orkar förklara här, ni orkar inte heller lyssna, trust me) så skulle jag villja hämta namnen på både en admin och en member i en och samma fråga.
Jag BEHÖVER inte göra detta men det skulle vara snyggt. Are you with?
Ett förenklat men relebvant exempel:
[news]
x_ID
x_adminID
x_memberID
x_text
SELECT * FROM (([news]
INNER JOIN [users] ... )
INNER JOIN [users] ... )
Så där går säkert inte att göra (och det är inte excakt så jag vill göra) men ser ni själva kärnan i problematiken?
LarsGMedlem sedan dec. 200012 464 inlägg select m.x_name,a.x_name
from users m,users a, news
where m.x_id = news.x_memberID
and news.x_adminID = a.x_id
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 825 inlägg Wow! Läckert! Så man kan göra så! Det förändrar ju hela världsbilden... :-)
Ska kolla närmare på det i morgon.
För övrigt noterar jag att jag stavar så illa att hälften hade räckt! :-)
EclipseMedlem sedan juli 20003 825 inlägg SELECT member.x_firstname, customer.x_firstname FROM users member, users customer, confirmOrder WHERE
confirmOrder.x_userID = member.x_ID AND confirmOrder.x_customerID = customer.x_ID;
Detta fick jag inte att fungera. Ser ni något uppenbart fel?
LarsGMedlem sedan dec. 200012 464 inlägg Nej, det är inget syntaktiskt fel i den.
Vad händer?
Felmeddelande?
Inga träffar?
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 825 inlägg confirmOrder.x_userID finns inte...
SELECT member.x_firstname, member.x_lastname, member.x_company,
customer.x_firstname, customer.x_lastname, customer.x_company
FROM users member, users customer, confirmOrder, job WHERE
confirmOrder.x_jobID = job.x_ID AND
job.x_userID = member.x_ID AND
confirmOrder.x_customerID = customer.x_ID;
0,0> Måns 1,0> Olai 2,0> Checkpoint 3,0> Palle 4,0> Pall 5,0> Trycknissarna
0,1> Rudolf 1,1> mule 2,1> Massa Tryck AB 3,1> Palle 4,1> Pall 5,1> Trycknissarna
Cool feature! Tack för hjälpen!
EclipseMedlem sedan juli 20003 825 inlägg SELECT TOP 30 job.x_ID, job.x_name, job.x_type,
member.x_firstname, member.x_lastname, member.x_company,
customer.x_firstname, customer.x_lastname, customer.x_company,
confirmOrder.x_ID, confirmOrder.x_date, confirmOrder.x_checked, confirmOrder.x_checkDate,
jobSettings.x_price1, jobSettings.x_price2, jobToMember.x_price1, jobToMember.x_price2
FROM users member, users customer, confirmOrder, job, jobSettings, jobToMember WHERE
confirmOrder.x_jobID = job.x_ID AND
job.x_userID = member.x_ID AND
confirmOrder.x_customerID = customer.x_ID AND
jobSettings.x_jobID = job.x_ID AND
jobSettings.x_customerID = confirmOrder.x_customerID AND
jobToMember.x_jobID = job.x_ID
ORDER BY confirmOrder.x_date;
Jag vet inte om du får ont i huvudet av att titta på ovanstående kod...
Min fråga är, kan man använda INNER JOIN alt. LEFT JOIN eller fungerar inte det med detta manéer?
LarsGMedlem sedan dec. 200012 464 inlägg Om du vill ha en outer join någonstans så får du använda syntaxen med
a left outer join b on a.id = b.id
Egentligen skall det gå att blanda, t.ex.
select * from a,b left outer join c on b.id = c.id where a.id = b.id
men några dbms verkar ha svårt för det så då får man skriva så här.
select * from (a inner join b on a.id = b.id) left outer join c on b.id = c.id where a.id = b.id
Det beror alltså på, men att skriva allt i from är det som är mest portabelt.
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 825 inlägg
Det beror alltså på, men att skriva allt i from är det som är mest portabelt.
Tack för det! Det känns tryggt! Jag känner att det du skriver känns aningen oöverskådligt och då har du endå valt att utelämna den egentlige koden...
En smaksak kanske, men jag är inte så mycket för det där med enskilda bokstäver. Det tenderar att bli något intetsägande... Ungefär som en burgare utan krydda. Visst, det slinker ner om man nu vill Det är bara att blunda och gapa... men 'hello world'...
Jag förstår att din kod är att betrakta som exempel, ett smakprov på den äkta varan liksom. Precis som burgaren! :-)
Fan vilken poet jag är! Men SQL är lite som poetri, det finns några duktiga som regerar men de flesta sitter på sin kammare och skriver för katten.