У меня есть две таблицы member
и alumni
. alumni
таблица может иметь то же самое member
в более чем одном ряду с другим полем year
. Я хочу выбрать все данные из обеих таблиц. В таблице приведены это:MYSQL Join Две таблицы с одинаковыми данными
Alumni:
id, regd, name, status, year
1 1 kim inactive 2013
2 1 kim inactive 2014
3 1 kim inactive 2015 //This is generated for alumni purpose
элемент таблицы Предоставленная:
regd, name, status, year
1 kim Active 2015
Ожидаемый результат:
`regd`, `name,` `status,` `year`
1 kim Active 2015
1 kim inactive 2014
1 kim inactive 2013
Если нет никаких записей например, 2015 год в alumni
, он все равно отобразит другой рекордер d в alumni
и 2015 от member
стол. Я пытаюсь показать это с помощью regd
, используя следующий оператор php и mysql, но он не работает должным образом.
Mysql:
SELECT m.*, a.* FROM member m
LEFT JOIN alumni a ON m.regd = a.regd
WHERE m.regd ='1' GROUP BY a.year ORDER BY a.year DESC;
PHP:
foreach($members as member):
echo $member['regd'].' '.$member['year'].'<br>';
endforeach;
Ошибка, он выбирает все данные из таблицы только alumni
. Где я могу пойти не так? Хотя я не предоставлял здесь скрипку, я надеюсь, что это дает мне понять. пожалуйста помогите.
'сливаются (member.status, alumni.status)'? Если нет записи для выпускников, вы получаете запись участника. –
@Marc B, я новичок, пожалуйста, вы можете предоставить более полный пример. – Zopa
- это абсолютно непонятно без скрипки :-) у вас нет столбца 'session' в таблицах данных, которые вы описали. и в соответствии с данными, предоставленными данными, лучше будет «ПРАВОЕ СОЕДИНЕНИЕ», поскольку у выпускников больше записей. И я не вижу причин для группировки записей до тех пор, пока я не увижу ану дубликатов – Alex