Хорошо, я не самый лучший с JOIN, и после всех этих лет работы с mySQL вы думаете, что я к настоящему времени, по крайней мере, минимально приличный. Угадайте, я никогда не работал над чем-то великолепно сложным, и теперь вам стоит присоединиться к столу. Итак, я здесь, в замешательстве, когда-либо столь немного нуждающемся в полезном примере, чтобы получить меня в рулоне, что-то, что уместно для моих фактических данных, что я могу сделать головы или рассказы о причине всех чтений, которые я делаю в Интернете, где просто дает у меня головные боли на данный момент. Я думаю, что я мог бы застрять на мифологии JOIN, что это трудно сделать, они не кажутся такими, но когда я пытаюсь, я терплю неудачу. Так что в любом случае я работаю с PHP в качестве кодирования на стороне сервера, и я считаю, что MySQL 5.mySQL JOIN query beat down
Таким образом, конструкция цели до некоторой степени.
У меня есть таблица информация и таблица Соединения.
Connections имеет: member_id
, connection_id
, active
Информация имеет: firstname
, lastname
, gender
, member_id
Я должен сказать, что таблицы содержат больше данных за столом, но, как я понимаю Мне нужно написать запрос, который я могу использовать member_id в качестве соединителя/внешнего ключа. Где я могу использовать обе стороны информации. Мне нужно знать, active is 1
, а затем мне нужно знать все столбцы, упомянутые выше для информации.
Я попытался
SELECT member_id,
connection_id,
active,
firstname,
lastname,
gender,
member_id
FROM connections, information
WHERE connection.member_id = information.member_id AND
connection.active = 1
и я попытался
SELECT * FROM connections, information
WHERE connection.member_id = information.member_id AND
connection.active = 1
С первым я получаю member_id амбициозен что понятно до точки я думаю, что причина согласования столбцов между двумя столы. Тогда второй запрос не хорошо меня обслуживает, так как он получается только с одним человеком.
Моя конечная цель - найти все соединения для определенного member_id в таблице соединений, а также собрать всю информацию об этих соединениях из таблицы информации, используя connection_id, как ее то же самое, что и member_id в информационное табло.
Так что в условиях laymans, если я не имею смысла, скажем, я хотел перечислить всех своих друзей из БД. Моя таблица соединений позволяет мне узнать, с кем я связан, где member_id - мой идентификатор, а connection_id - мои друзья member_id в другой таблице. Надеюсь, это имеет больше смысла. И здесь у меня возникают проблемы с моим запросом и попытка написать его правильно. Если бы я мог получить работоспособный образец здравого смысла, я думаю, что я мог бы лучше понять, что JOIN не помогает, что я также не могу понять, какой тип JOIN лучше всего подходит для моих потребностей, я полагаю.
EDIT ....
Ok согласно запросу от комментариев ниже.Выборочные данные Ожидаемый вывод из таблиц, которые выглядят примерно так:
Connections Таблица
member_id, connection_id, active
1 | 2 | 1
1 | 3 | 1
1 | 4 | 1
1 | 5 | 1
2 | 1 | 1
2 | 5 | 1
3 | 1 | 1
Информация Таблица
member_id, firstname, lastname, gender, ...other unimportant rows for this query
1 | Chris | Something | m | ....
2 | Tony | Something | m | ....
3 | Brandon | Something | m | ....
4 | Cassie | Something | f | ....
5 | Jeff | Something | m | ....
6 | John | Something | m | ....
Теперь из таблицы соединений, мне нужно собрать все connection_id годов связанный с my member_id, где активным является 1, затем из информационной таблицы собирают все имя, фамилию, пол. Теперь я знаю, что могу сделать это s 2 step, где я объединяю все соединения connection_id из соединений, затем запускаю их через какой-то цикл и по очереди получаю полученный идентификатор от первого запроса, но для меня это кажется немного неясным и интенсивным процессом, которого я хочу избежать, что приносит мне здесь .. на данный момент от моего первоначального запроса, публикуемую на многие разделяют до сих пор пытаются помочь мои результаты к действию
1 | Chris | Something | m | 2
1 | Chris | Something | m | 3
1 | Chris | Something | m | 4
1 | Chris | Something | m | 5
, что я хотел бы видеть вернулся что-то вроде
2 | Tony | Something | m
3 | Brandon | Something | m
4 | Cassie | Something | f
5 | Jeff | Something | m
Посмотрев на это, я полагаю, мне также нужно будет знать столбец friendID, который также совпадает с моим member_id, но это то, что нужно после этого начального барьера
Прежде всего, я должен взломать для своих орфографических ошибок, я не копировал и не вставлял свою концепцию, я просто набрал ее быстро, и ее поздно, так что масло горит низко. Так или иначе. Мой запрос и почти все, показанные здесь, работают над тем, чтобы получить правильное количество результатов, но то, что я пытаюсь сделать, это вернуть информацию друзей firstname, lastname и т. Д. В настоящее время я получаю от моего запроса и этого один и другие здесь, мое имя 8 раз с friendID, которое до некоторой степени является кошерным – chris
, но я бы предпочел, чтобы у меня была информация о друзьях, основанная на connection_id, которая связана с моим member_id – chris
@chris Можете ли вы опубликовать фиктивные записи для таблицы Connections and Information и ваш желаемый результат? Благодарю. Это очень поможет. –