2010-07-10 3 views
-2

Есть 2 таблицыПомощи с SQL запросом

1st {id_city,name } 
2nd table {id_ctz,name,sname,age,id_city} 

потребности выбранной полной информации (название (город), название, SNAME, возраст) люди с таким же именем accending по возрасту?

Пытались:

select city.name,citizen.name,age 
from citizen,city where city.id_city = citizen.id_city and citizen.name = '%s' 
order by age asc 

вход varible это имя

+5

Ну, что вы пробовали? – 2010-07-10 18:27:41

+0

выберите city.name, citizen.name, возраст от гражданина, город, где city.id_city = citizen.id_city и citizen.name = '% s' по возрасту по возрастанию – alexandr

+0

@alexandr: И в чем проблема с этим? –

ответ

1

Я предполагаю, что вы хотите, чтобы все строки были возвращены, и вы хотите, чтобы люди с каким-то именем сначала сортировались по возрасту. Затем вам нужны все остальные строки. Этот запрос будет делать это:

SELECT city.name, citizen.name, citizen.age 
FROM citizen 
JOIN city ON city.id_city = citizen.id_city 
ORDER BY citizen.name <> 'some_name', citizen.age 
+0

Это работает Спасибо, Марк Байерс !!!! я не думаю об этом ORDER BY citizen.name <> 'varible' Еще раз спасибо! – alexandr

+0

Приятно угадать! Мне нравятся счастливые прелести –

2

Это лучшее, что я мог бы сделать с (отсутствие) информации, предоставленной.

SELECT * 
FROM 1st a 
JOIN 2nd b ON a.id_city=b.id_city 
WHERE a.name = 'same' 
ORDER BY b.age ASC 

Примечание: на самом деле не используйте * в качестве выходных столбцов. Используйте фактические имена.

0
select c2.name AS CityName, 
c1.name AS CitizenName, 
c1.age AS CitizenAge 
from citizen as C1 
inner join city as C2 on C1.id_city = c2.id_city 
where c1.name = 'frank' 
order by c1.age asc 
+0

, он будет выводить только строки, где имя «Фрэнк», но мне нужно все другое после – alexandr

+1

@alexandr: вы заявили, что хотите «людей с тем же именем, , Возможно, вы можете ** изменить свой вопрос **, чтобы включить образцы данных, а затем результаты, которые вы ожидаете от запроса? –

0

Действительно ли вы ищете помощь в том, как передать параметр в запрос? В этом случае ваша проблема равна '% s'. Вам нужно удалить одинарные кавычки. В хранимой процедуре TSQL вместо этого будет = @s. MySQL Я не уверен (у вас есть оба тега), и если вы используете что-то другое, кроме хранимых процедур для параметризованного запроса, это зависит от поставщика данных, который вы используете.