2010-10-04 5 views
0

Да, поэтому я создаю запрос из расширенной формы поиска.PHP: ГДЕ в другой таблице

У меня есть это:

$query = "SELECT * FROM users WHERE 1 "; 
$query .= "AND sex = '$sex' "; 

сейчас, следующие им будут иметь и день рождения .. но я не знаю, как это сделать, потому что пользователи рождения хранится в users_profile

Так, пожалуйста, поправьте меня, как я могу:

$query .= "AND birthday in users_profile = '1'";  

возможно ли это даже, или я должен восстановить его и положить день рождения у пользователей вместо ..

обновление: в пользователях, там столбец идентификатора, привязан к uID users_profile'у.

Таким образом, в столбце uID users_profile есть идентификатор пользователей.

+0

Вы должны изменить тег на SQL. – geon

ответ

2

Я предполагаю, что таблица users_profile привязана к таблице пользователей?

SELECT u.*, up.birthday 
FROM users u 
INNER JOIN users_profile up 
ON u.user_id = up.user_id 
WHERE sex = '$sex' 

Здесь используется Inner Join. Причина, по которой мы можем использовать u вместо пользователей, а не вместо user_profile, - это то, что мы создали псевдонимы «пользователи u» и «users_profile up»

+0

Да, см. Обновленный вопрос – Johnson

0

Вам нужно посмотреть на синтаксис для JOIN.

0

Вам нужен способ, чтобы присоединиться отдельными связанные строки в двух таблицах, что-то вроде:

SELECT u.* FROM users u, users_profile p 
WHERE u.sex = 'M' 
    AND p.birthday = '1' 
    AND u.userid = p.userid; 
0

Я не понимаю, почему у вас есть отдельные таблицы для пользователя и для users_profile, но вы должны присоединиться к две таблицы:

SELECT U.* 
    FROM users U 
    LEFT JOIN users_profile P 
     ON P.uID = U.uID 
     AND P.birthday = '1' 
WHERE U.sex = '$sex' 
0

Очень возможно, если у вас есть внешний ключ в таблице users_profile. Допустим, первичный ключ в таблице пользователей называется «идентификатор», и таблица users_profile содержит поле, называемое «UID», который указывает на таблицу пользователей, вы обычно создать запрос, как это:

SELECT * FROM users u, users_profile p WHERE u.id = p.uid 
AND u.sex = '$sex' AND u.birthday = 1 
Смежные вопросы