2016-02-22 2 views
1

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

Select 
    Players.fname AS first_name, 
    Players.lname AS last_name, 
    Players.Player_id 
    positions.positions_id 
From 
    Players, positions 
JOIN player_position 
ON Players.Player_id=player_position.Player_id 
JOIN positions ON player_position.positions_id=positions.positions_id 
WHERE player_position.WAR> 5 
GROUP BY last_name 
\G` 
+0

Не смешивайте стили объединения. это просто делает для уродливого/неподотчетного запроса. –

+1

Требуется запятая после 'Players.Player_id' на ваш выбор. – rybo111

ответ

0

К сожалению, вы не были так уж «близки», чтобы это исправить. Требуется фиксация целого ряда точек. Давайте дадим ему попробовать:

SELECT 
    pl.fname AS first_name, 
    pl.lname AS last_name, 
    pl.Player_id, 
    po.positions_id 
FROM Players pl 
INNER JOIN player_position pp 
ON pp.position_id=pl.Player_id 
INNER JOIN positions po 
ON po.positions_id=pp.positions_id 
WHERE pp.WAR> 5 
ORDER BY last_name 

не зная много о ваших данных и их внутренней структуры, я могу только догадываться, так что очень вероятно, что это не совсем то, что вы хотите, но, по крайней мере, он должен быть действительным SQL и, возможно, отправная точка.

Я заменил ваш GROUP BY на ORDER BY, предполагая, что вы действительно хотите видеть каждого игрока отдельно, а не всех игроков с одинаковой фамилией, сгруппированных вместе в одну строку. Список столбцов не был бы допустимым для предложения GROUP BY.

Еще один непонятный мне вопрос - цель ваших кажущихся двух таблиц позиционирования player_position и positions. Они оба соединены с идентификатором отдельного игрока. Есть ли действительно две таблицы или вы хотите сделать что-то другое?

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