2012-05-22 3 views
0

У меня возникают проблемы с моим оператором select, когда run title_two и author_two не заполняются должным образом следующим значением заголовка. Вместо этого они распечатывают то же, что и b.title и b.author. Я попытался объявить их какmysql select alias не работает

`B.title AS title_two`. 

    SELECT R.bookone, B.title, B.author, 
    R.booktwo, B.title title_two, B.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid; 

есть две таблицы

отношения которых имеет следующий - RelationshipId, bookone, booktwo, отношение, relationlike, relationdislike

то книги, которые является BookID, название , автор, издатель

bookone и booktwo являются иностранными ключами, ссылающимися на bookid, что им пытается добиться, так что, когда пользователь нажимает на ссылку, она имеет все отношения, которые книга имеет с другими книгами

+0

Что будет отображаться с 'B.title AS title_two'. ? –

+0

-1 Ваш вопрос очень смущает, как видно из разных типов ответов. –

+0

есть две таблицы отношений, которая имеет следующий - RelationshipId, bookone, booktwo, отношение, relationlike, relationdislike затем книги, является BookID, название, автор, издатель bookone и booktwo внешние ключи ссылающихся BookID , что им пытаются чтобы добиться того, что когда пользователь нажимает на ссылку, он будет иметь все отношения, которые есть в книгах с другими книгами, вместо этого он просто подходит к названию bookone дважды – user1393064

ответ

0

Используйте цитаты, используя псевдоним

SELECT R.bookone, B.title, B.author, 
    R.booktwo, B.title as 'title_two', B.author as 'author_two', 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid; 
0

Правильный формат: ColName в NewColName

SELECT R.bookone as `BookOne` 
    , ... 
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid; 

или просто (без AS)

SELECT R.bookone `BookOne` 
    , ... 
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid; 
0

Вам нужно зарегистрироваться на книги еще раз. Что-то вроде:

SELECT R.bookone, B1.title, B1.author, 
    R.booktwo, B2.title title_two, B2.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B1 ON R.bookone = B1.bookid 
    INNER JOIN books B2 ON R.booktwo = B2.bookid 
+0

при внесении изменений, которые вы предложили, чтобы этот сайт выбрал этот код Неизвестный столбец 'R.bookone' в 'on clause' – user1393064

0

Они делают то, что они должны делать. author_two должно быть таким же, как B.author, а title_two должно быть таким же, как B.title. Это просто псевдонимы.

Кроме того, запрос одного и того же столбца дважды из одной таблицы не получит следующий результат в таблице - он просто возвращает один и тот же столбец дважды.

+0

есть ли способ, которым я могу сделать то, что я пытаюсь достичь? или я должен сделать это как два оператора выбора, а затем объединить их – user1393064

+0

Да, у Эмиля есть ответ. – Jhong

+0

при внесении изменений он предложил, чтобы сайт выкинул эту Неизвестную колонку «R.bookone» в разделе «on» любые идеи? – user1393064

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