2013-11-08 3 views
0

Я уверен, что есть несколько примеров на S.O. но я даже не знаю, что искать, поскольку я очень ограничен, когда дело доходит до работы с базами данных, поэтому я подумал, что отправлю сюда и надеюсь получить некоторую помощь.MySQL Присоединиться к справке из двух таблиц

У меня есть две таблицы, пользователи и профили. Для одного электронного письма может быть несколько профилей, и в таблице «Пользователи» может быть несколько профилей.

Мне нужно написать запрос, который выбирает все идентификаторы профиля из таблицы профиля, где соответствует адрес электронной почты (например, [email protected]). Это должно возвращать кучу профилей (1, 23, 444, 9203 ., 034) Но я только хочу, чтобы вернуть profileIDs (и имя пользователя), которые находятся в таблице пользователей (например, только ProfileID 444 в таблице пользователя

Профиль Таблица. Пример:

ProfileID | primaryEmail | name | otherStuff |

Таблица пользователей:

profileID | имя пользователя | пароль | otherUserStuff |

Это, вероятно, очень просто, но мне потребовалось немало времени для исследований, и я нахожусь на хрусте.

Что-то вроде (?):

SELECT t1.profileID, t2.username 
    FROM Profiles as t1 INNER JOIN Users as t2 ON t1.profileID = t2.profileID 
    WHERE t1.primaryEmail="[email protected]" 

Я фронтэндом DEV, который взял задачу, которая имеет кучу больше бэкэнд работы, чем я думал .. и я уже пару дней мимо дата ..

+0

Мы не здесь, чтобы сделать свою домашнюю работу для вас. Покажите нам, что вы пробовали, и ошибки, которые вы получаете, и мы можем помочь вам отладить вашу проблему. – Flimzy

+0

Спасибо за помощь flimzy – travis

ответ

1

sql documentation из документации на сайте MySQL должна помочь вам сформировать запрос, который вы ищете, но для того, что рабочий присоединиться пример будет выглядеть примерно так:

SELECT column1 FROM table1 tableAlias 
INNER JOIN table2 table2Alias ON tableAlias.column = table2Alias.column 
WHERE tableAlias.column = this AND table2Alias.column = that 

ПРИМЕЧАНИЕ. Существует несколько типов соединений, которые вы можете использовать, поэтому найдите время, чтобы прочитать документацию, и определите, какой из них лучше всего подходит для решения вашей проблемы.

+0

Удивительное спасибо за помощь! – travis

1

Вы можете написать этот запрос.

SELECT Profile.ProfileID, User.username from Profile INNER JOIN User ON Profile.ProfileID = User.ProfileID WHERE Profile.primaryEmail = "[email protected]" 

Попробуйте.

Спасибо.

+0

Удивительно, это похоже на работу, спасибо! – travis

+0

Подробнее Добро пожаловать ... –

0
SELECT ProfileID, Username 
    FROM Profile 
    JOIN Users USING (ProfileID) 
WHERE primaryEmail = "[email protected]" 

Он покажет данные, которые существуют как в таблицу, которая имеет такой же profileID

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