我有一个问题。我有两个表,第一个表包含评论,第二个ID评论和留下评论的专辑ID
> 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'
但是我有两次结果。
如何获取特定专辑ID的评论文本?
答案 0 :(得分:4)
一般语法为:
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操作。
答案 1 :(得分:2)
尝试使用 InnerJoin
SELECT *
FROM review_album
JOIN review ON review_album.review_id=review.id
WHERE album_id = '300001'
答案 2 :(得分:1)
您忘记了打开条件,每次您有一个连接时,最好指定连接条件,否则,您将拥有所有可用的连接。 解决方案
SELECT *
FROM review_album RA
JOIN review R ON RA.column_fk = R.column_fk
WHERE album_id = '300001'
答案 3 :(得分:1)
尝试使用此方法:
选择 *
来自review_album ra
加入评论r ON罕见视图ID = r.id
WHERE album_id ='300001'