webForumDet fria alternativet

Subqueries

4 svar · 333 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 442 inlägg
#1

Jag har problem med ett antal frågor som ser typ ut som exemplet nedan. De är skrivna med subselect och nu visade det sig att programmvaran på servern inte stödjer det. Hur går det att lösa utan att uppgradera programvaran på servern? Är join ett alternativ?

select comp_id,comp_name from nars_company where comp_id not in(select comp_id from nars_company_person where person_id in(select student_id from nars_student))order by comp_name;
@ndersMedlem sedan juni 200026 914 inlägg
#2

Det borde gå att lösa med en JOIN, ja.
Men det kan ju ändå vara bra att uppgradera MySQL (som jag antar att det handlar om.)

Borde funka:

SELECT comp_id, comp_name FROM nars_company nc
LEFT JOIN nars_company_person ncp ON nc.comp_id = ncp.comp_id
LEFT JOIN nars_student ns ON ncp.person_id = ns.student_id
WHERE ns.student_id IS NULL AND ncp.comp_id IS NULL
ORDER BY comp_name
dahlgrenMedlem sedan aug. 20011 442 inlägg
#3

Tyvärr så ligger servern lite utanför min kontroll men det vore ju den bästa lösningen. Tyvärr fungerar det inte riktigt med din join utan får följande meddelande. #1052 - Column: 'comp_id' in field list is ambiguous

LarsGMedlem sedan dec. 200012 465 inlägg
#4
SELECT distinct nc.comp_id, nc.comp_name FROM nars_company nc
LEFT JOIN nars_company_person ncp ON nc.comp_id = ncp.comp_id
LEFT JOIN nars_student ns ON ncp.person_id = ns.student_id
WHERE ns.student_id IS NULL AND ncp.comp_id IS NULL
ORDER BY nc.comp_name
@ndersMedlem sedan juni 200026 914 inlägg
#5

dahlgren skrev:

Tyvärr fungerar det inte riktigt med din join utan får följande meddelande. #1052 - Column: 'comp_id' in field list is ambiguous

My bad. :)

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb