如何通过连接的表获取值?

时间:2018-11-15 08:39:30

标签: mysql sql

我有一个问题。我有两个表,第一个表包含评论,第二个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的评论文本?

4 个答案:

答案 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操作。

引用:https://www.dofactory.com/sql/join

答案 1 :(得分:2)

尝试使用 InnerJoin

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

Reference

答案 2 :(得分:1)

您忘记了打开条件,每次您有一个连接时,最好指定连接条件,否则,您将拥有所有可用的连接。 解决方案

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的文档

答案 3 :(得分:1)

 尝试使用此方法:



选择 *
    来自review_album ra
    加入评论r ON罕见视图ID = r.id
    WHERE album_id ='300001'