2013-07-20 4 views
0

Мне нужно создать один запрос, который читается из трех таблиц в том же db.Запрос на несколько таблиц?

Таблицы:

1. cm_players 
player_id 
card_no 
club_id 
surname 
name 
birthdate 

2. cm_clubs 
club_id 
prefix 
name 
address 
place 
stadium_id 
telephone 
fax 
email 
web 
contact_person 
president 
secretary 
press_officer 
status 
image 

3. cm_registrations 
player_id 
surname 
name 
birthdate 
birthplace 
club_id 
date_from 
date_to 
amateur 
status 

Итак, мне нужно, чтобы отобразить

cm_players.name, 
cm_players.surname, 
cm_clubs.name, 
cm_players.birthdate, 
cm_players.card_no, 

присоединиться cm_players с cm_clubs, чтобы получить название клуба, а также проверить в cm_registrations если пользователь активен ... ..

я попробовал что-то вроде:

SELECT cm_players.name, cm_players.surname, cm_clubs.name, cm_players.birthdate, cm_players.card_no, cm_registrations.amateur FROM cm_players 
INNER JOIN cm_clubs on cm_players.club_id = cm_clubs.club_id, cm_registrations 
WHERE cm_players.name LIKE '%$name%' AND cm_players.surname LIKE '%$surname%' AND cm_players.player_id = cm_registrations.player_id AND cm_registrations.amateur = 0 ORDER BY cm_players.player_id ASC 

но не повезло ...

Может ли кто-нибудь помочь мне построить этот запрос?

ответ

0

Здесь мы устанавливаем псевдонимы таблиц, и получить значения столбцов, используя соответствующие имена псевдонимов этой таблицы и мы используя внутренние соединения на двух столах, которые клубы и регистрации

SELECT cmp.name, cmp.surname, cmc.name, cmp.birthdate, cmp.card_no, cmr.amateur 
    FROM cm_players cmp 
    INNER JOIN cm_clubs cmc on cmp.club_id = cmc.club_id 
    INNER JOIN cm_registrations cmr on cmp.player_id = cmr.player_id 
    WHERE cmp.name LIKE '%$name%' 
    AND cmp.surname LIKE '%$surname%' 
    AND cmr.amateur = 0 
    ORDER BY cmp.player_id ASC 
+0

Спасибо Вы и codingbiz ниже, Он отлично работает: –

0

cm_registrations ГДЕ cm_players.name LIKE '% $ имя%' И cm_players.surname LIKE '% $ фамилия%' И cm_players.player_id = cm_registrations.player_id И cm_registrations.amateur = 0 ORDER BY cm_players.player_id ASC ошибка после присоединения u используйте, а cm_registeration измените его и попытайтесь исправить.

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