Как получить значения через связанные таблицы? - PullRequest
0 голосов
/ 15 ноября 2018

У меня такой вопрос.У меня есть две таблицы, первая содержит комментарии, а вторая - комментарии и идентификатор альбома, к которому был оставлен комментарий

> CREATE TABLE `review` (`id` VARCHAR(32) NOT NULL,
>   `user_id` VARCHAR(32) NOT NULL,`comment` MEDIUMTEXT NOT NULL,
>   PRIMARY KEY (`id`) )


> CREATE TABLE `review_album` (`review_id` VARCHAR(32) NOT NULL,
> `album_id` VARCHAR(32) NOT NULL, PRIMARY KEY (`review_id`,
> `album_id`),  INDEX `review_album_review_idx` (`review_id`) )

Я пробовал так:

SELECT * from review_album JOIN review WHERE album_id = '300001' 

Но яполучил результат два раза.

Как получить текст комментария для определенного идентификатора альбома?

Ответы [ 4 ]

0 голосов
/ 15 ноября 2018
    try using this :



SELECT *
    FROM review_album  ra
    JOIN review r ON rareview_id=r.id
    WHERE album_id = '300001'
0 голосов
/ 15 ноября 2018

Попробуйте с InnerJoin

SELECT *
FROM review_album
JOIN review ON review_album.review_id=review.id
WHERE album_id = '300001'

Ссылка

0 голосов
/ 15 ноября 2018

вы забыли условие «on», каждый раз, когда у вас есть соединение, вам лучше указать условие объединения, в противном случае у вас есть все доступные соединения. Однако решение

SELECT * 
FROM review_album RA 
JOIN review R ON RA.column_fk = R.column_fk 
WHERE album_id = '300001' 

Здесь документация для объединения https://www.w3schools.com/sql/sql_join.asp

0 голосов
/ 15 ноября 2018

Общий синтаксис:

SELECT column-names
  FROM table-name1 JOIN table-name2 
    ON column-name1 = column-name2
 WHERE condition

Общий синтаксис с INNER:

SELECT column-names
  FROM table-name1 INNER JOIN table-name2 
    ON column-name1 = column-name2
 WHERE condition

Примечание. Ключевое слово INNER является необязательным: оно используется по умолчанию и является наиболее часто используемой операцией JOIN.

Ссылка: https://www.dofactory.com/sql/join

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...