2012-03-21 4 views
2

я имею три таблицы, а именноизвлечения данных из трех таблиц с использованием MySQL

1) cd_register

|----------------------------------------------------| 
| username | name | age | sex | dob  | 
|----------------------------------------------------| 

2) cd_social

|-------------------------------------| 
| username | religion | caste | 
|-------------------------------------| 

и 3) cd_professional

|----------------------------------------| 
| username | occupation | education | 
|----------------------------------------| 

Теперь я использую этот запрос в MySQL, но его дает ошибку

SELECT cd_register.name, cd_register.age, cd_register.dob, cd_social.religion, cd_social.caste, cd_professional.profession 
FROM cd_register, cd_social,cd_professional 
WHERE 
cd_register.sex = 'Male', 
cd_social.religion = 'Hindu', 
cd_social.caste = 'Brahmin', 
cd_professional.occupation = 'Doctor', 
cd_register.username = cd_social.username AND 
cd_register.username = cd_professional.username 

Теперь я хочу отметить, что username является primary key всех таблиц. Также username от cd_register - foreign key в cd_social. Также username от cd_register является foreign key в cd_professional.

ответ

8

Вы можете использовать join

SELECT t1.name, t1.age, t1.dob, t2.religion, t2.caste, t3.profession 
FROM cd_register as t1 
LEFT JOIN cd_social as t2 
ON t1.username = t2.username and t2.caste = 'Brahmin' and t2.religion ='Hindu' 
LEFT JOIN cd_professional as t3 
ON t1.username = t3.username and t3.occupation = 'Doctor' 
WHERE t1.sex = 'Male' 
+0

@ sararov..и абсолютно совершенен мой друг ... только одна вещь, которую вы использовали cd_professional.profession .. Anyways я исправил его – Saswat

+0

Ok исправлено сейчас. благодаря – safarov

0

Это может помочь нам сообщить, что такое ошибка.

Также две последние строки идентичны.

Возможно, вам также потребуется присоединиться к таблице cd_professional.

1

У вас есть запятые в вашем предложении WHERE, который, безусловно, вызывают ошибку (вы, вероятно, хотите AND МЕЕТСЯ) Попробуйте это:

SELECT cdr.name, cdr.age, cdr.dob, cds.religion, cds.caste, cdp.profession 
FROM cd_register  cdr 
JOIN cd_social   cds 
    ON cdr.username = cds.username 
JOIN cd_professional cdp 
    ON cdr.username = cdp.username 
WHERE cdr.sex  = 'Male' 
    AND cds.religion = 'Hindu' 
    AND cds.caste  = 'Brahmin' 
    AND cdp.occupation = 'Doctor' 
+0

его дает ошибку мой frnd .. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'FROM candid_register_table cdr JOIN кандидат_social_table cds ON cdr.usern' в строке 1 – Saswat

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