2010-06-15 5 views
2

У меня ситуация с базой данных, где я хотел бы получить строку профиля пользователя по возрастному диапазону пользователя.Получите результат DB со значением между двумя значениями столбца

это мой дб:

table_users 
username  age  email      url 
pippo  15  [email protected]  http://example.com 
pluto  33  [email protected]  http://example.com 
mikey  78  [email protected]  http://example.com 


table_profiles 
p_name  start_age_range  stop_age_range 
young  10     29 
adult  30     69 
old   70     inf 

Я использую MySQL и PHP, но я не знаю, есть ли какой-то конкретный tacnique, чтобы сделать это, и, конечно, если это возможно.

# so something like: 
SELECT * 
FROM table_profiles AS profiles 
INNER JOIN table_users AS users 
# can I do something like this? 
ON users.age IS BETWEEN profiles.start_age_range AND profiles.stop_age_range 
+2

Почему хранить постоянно изменяющееся значение в базе данных? Не подходит ли дата рождения? – symcbean

+1

Вы пытались удалить ИС с IS BETWEEN? Используя SQL Server, это действительный оператор SQL. –

+0

@symcbean вы правы, я в настоящее время храню дату, я использовал простое число в этом примере, чтобы упростить мой ответ. – vitto

ответ

2
Select 
    * 
From 
    table_profiles As profiles, 
    table_users As users 
Where 
    users.age Between profiles.start_age_rage And profiles.stop_age_range 
+0

спасибо, я думал, что это что-то вроде предложения BETWEEN – vitto

+0

Вы очень приветствуетесь (: –

0

насчет

SELECT * 
    FROM table_profiles AS profiles 
    Where 
users.age >= profiles.start_age_range AND users.age <=profiles.stop_age_range 
+0

'INNER JOIN

ON ' не является законным SQL для любой базы данных. –

+0

Удалено Спасибо. –

Смежные вопросы