SQL Query: Атрымаць спіс, які адпавядае крытэрам

На жаль, я не мог прыдумаць лепшы загаловак (ці што-небудзь, што мае сэнс).

Я спрабаваў напісаць SQL запыт, дзе я магу аднавіць імёны студэнтаў, якія маюць тое ж значэнне, як на ўзровень студэнта Jaci Walker.

Фармат табліцы:

STUDENT(id, Lname, Fname, Level, Sex, DOB, Street, Suburb, City, Postcode, State)

Так што я ведаю Lname (Walker) і Fname (Jaci) і мне трэба знайсці ўзровень Jaci Walker, а затым вывесці спіс імёнаў з тым жа ўзроўнем.

--Find Level of Jaci Walker
SELECT S.Fname, S.Name, S.Level
FROM Student S
WHERE S.Fname="Jaci" AND S.Lname="Walker"
GROUP BY S.Fname, S.Lname, S.Level;

Я зразумеў, як атрымаць Узровень JACI Walker , але не ведаюць, як прымяніць гэта да іншага запыце.


Thankyou усім за вашу дапамогу, Я проста затрымаўся на адным трохі дадаючы астатнюю частку запыту ў яго.

https://www.dropbox.com/s/3ws93pp1vk40awg/img.jpg

SELECT S.Fname, S.LName
FROM Student S, Enrollment E, CourseSection CS, Location L
WHERE S.S_id = E.S_id
AND E.C_SE_ID = CS.C_SE_id
AND L.Loc_id = CS.Loc_ID
AND S.S_Level = (SELECT S.S_Level FROM Student S WHERE S.S_Fname = "Jaci" AND S.S_Lname = "Walker")
AND CS.C_SE_id = (SELECT CS.C_SE_id FROM CourseSection CS WHERE ?)
AND L.Loc_id = (SELECT L.Blodg_code FROM Location L WHERE L.Blodg_code = "BG");
0

8 адказы

паспрабуйце гэта:

SELECT S.Fname, S.Name, S.Level
FROM Student S
WHERE S.Level = 
    (SELECT Level
     FROM Student 
     WHERE Fname="Jaci" AND Lname="Walker"
    )

але вы павінны быць упэўненыя, што ёсць толькі адзін студэнт пад назвай Jaci Walker ...

1
дададзена
Вялікі дзякуй
дададзена аўтар Jaci Walker, крыніца

паспрабуйце гэта:

SELECT S.Fname, S.Name, S.Level
FROM Student S
WHERE S.Level = 
    (SELECT Level
     FROM Student 
     WHERE Fname="Jaci" AND Lname="Walker"
    )

але вы павінны быць упэўненыя, што ёсць толькі адзін студэнт пад назвай Jaci Walker ...

1
дададзена
Вялікі дзякуй
дададзена аўтар Jaci Walker, крыніца

Вы можаце паўторна выкарыстоўваць запыт у якасці подзапросов, каб знайсці іншыя запісы з тым жа ўзроўнем.

SELECT Fname, Name
FROM Student
WHERE Level = (
    SELECT Level FROM Student S WHERE S.Fname="Jaci" AND S.Lname="Walker")
1
дададзена
@JaciWalker вы не сфармулявана пытанне толькі адправіў запыт SQL. У цэлым пытанні не павінны быць пашыраныя пасля. Калі ваш першы пытанне адказвае прыняць адказ і пачаць новае пытанне.
дададзена аўтар Kai, крыніца
Вы б быць у стане дапамагчы мне з наступнага часткай запыту?
дададзена аўтар Jaci Walker, крыніца
На жаль, я не магу галасаваць да. Мне трэба 15 рэпутацыі.
дададзена аўтар Jaci Walker, крыніца
Вялікі дзякуй
дададзена аўтар Jaci Walker, крыніца

Вы можаце паўторна выкарыстоўваць запыт у якасці подзапросов, каб знайсці іншыя запісы з тым жа ўзроўнем.

SELECT Fname, Name
FROM Student
WHERE Level = (
    SELECT Level FROM Student S WHERE S.Fname="Jaci" AND S.Lname="Walker")
1
дададзена
@JaciWalker вы не сфармулявана пытанне толькі адправіў запыт SQL. У цэлым пытанні не павінны быць пашыраныя пасля. Калі ваш першы пытанне адказвае прыняць адказ і пачаць новае пытанне.
дададзена аўтар Kai, крыніца
Вы б быць у стане дапамагчы мне з наступнага часткай запыту?
дададзена аўтар Jaci Walker, крыніца
На жаль, я не магу галасаваць да. Мне трэба 15 рэпутацыі.
дададзена аўтар Jaci Walker, крыніца
Вялікі дзякуй
дададзена аўтар Jaci Walker, крыніца

Вам не трэба згрупаваць вынік.

паспрабуйце гэта

Select Fname,Lname from Student 
where Level=(Select Level 
             from Student 
             where Fname='Jaci' AND Lname='Walker' );
1
дададзена
Вялікі дзякуй.
дададзена аўтар Jaci Walker, крыніца

Паспрабуйце гэта:

SELECT S.Fname, S.Name, S.Level FROM Student s 
WHERE Level = 
(SELECT TOP 1 Level FROM Student WHERE Fname = "Jaci" and Lname = "Walker")

<�Моцны> Калі вы не карыстаецеся TOP 1, гэты запыт не будзе, калі ў вас ёсць больш чым адзін «Jaci Walker» у вашых дадзеных.

0
дададзена
Тады, магчыма, ён павінен пацярпець няўдачу, таму што іншыя JACI хадункі могуць мець розныя ўзроўні ;-)
дададзена аўтар Kai, крыніца
Я не ведаю вашу схему базы дадзеных. Але вы павінны пакласці нешта там, каб атрымаць адпаведны унікальны шэраг.
дададзена аўтар Fabian Bigler, крыніца
ДОБРА. Дайце мне ведаць, калі вам патрэбна дадатковая дапамога з гэтым запытам.
дададзена аўтар Fabian Bigler, крыніца
Не, я хацеў бы рэкамендаваць вам пашырыць Дзе прыдатачных напрыклад з выглядам на горад і прыгарад, каб пераканацца, што ён унікальны.
дададзена аўтар Fabian Bigler, крыніца
@FabianBigler Я абнавіў першы пост са схемай базы дадзеных.
дададзена аўтар Jaci Walker, крыніца
Прывітанне @FabianBigler, мне было цікава, што я б паставіў, дзе «?» ёсць. ВЫБАР S.Fname, S.LName ад студэнта S, E, Прыёмнай CourseSection CS, Размяшчэнне L ГДЕ S.S_id = E.S_id І E.C_SE_ID = CS.C_SE_id І L.Loc_id = CS.Loc_ID І S.S_Level = ( ВЫБАР S.S_Level АД Student S гДЕ S.S_Fname = "Jaci" І S.S_Lname = "Уокер") І CS.C_SE_id = (SELECT CS.C_SE_id АД CourseSection CS дзе?) І L.Loc_id = (SELECT L.Blodg_code з месцазнаходжання L ГДЕ L.Blodg_code = "БГ"); dropbox.com/s/3ws93pp1vk40awg/img.jpg
дададзена аўтар Jaci Walker, крыніца
Ок, дзякуй. Мне трэба, каб пашырыць запыт ўключаць: -Людзі, якія маюць той жа ўзровень, і -Людзі, якія прынялі курс з Jaci Walker ў канкрэтным будынку. Я проста меў патрэбу ў дапамозе, пачынаючы яго пасля звяртаючыся да дапамогі на працягу некалькіх дзён.
дададзена аўтар Jaci Walker, крыніца

Я не думаю, што вам патрэбна група па і ўсё для ж ...

проста,

<�Папярэдне> SELECT S.Fname, S.Name, S.Level АД Student S ГДЕ S.LEVEL ЯК (SELECT ЎЗРОВЕНЬ ад студэнта ГДЕ Fname = "Jaci" І Lname = "Уокер");

Вы шукаеце жа?

0
дададзена

Я не думаю, што вам патрэбна група па і ўсё для ж ...

проста,

<�Папярэдне> SELECT S.Fname, S.Name, S.Level АД Student S ГДЕ S.LEVEL ЯК (SELECT ЎЗРОВЕНЬ ад студэнта ГДЕ Fname = "Jaci" І Lname = "Уокер");

Вы шукаеце жа?

0
дададзена