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

nom7f22z  于 2021-06-19  发布在  Mysql
关注(0)|答案(4)|浏览(348)

我有这样一个问题。我得到了两个表,第一个表包含注解,第二个表包含注解的id comments和album 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的评论文本?

vwkv1x7d

vwkv1x7d1#

你忘记了条件,每次你有一个连接时,你最好指定连接的条件,否则你就有了所有可用的连接。hovewer解决方案

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

这里是join的文档https://www.w3schools.com/sql/sql_join.asp

bttbmeg0

bttbmeg02#

尝试使用innerjoin

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

参考

vecaoik1

vecaoik13#

一般语法为:

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关键字是可选的:它是默认的,也是最常用的连接操作。
参考文献:https://www.dofactory.com/sql/join

xxe27gdn

xxe27gdn4#

try using this :

SELECT *
    FROM review_album  ra
    JOIN review r ON rareview_id=r.id
    WHERE album_id = '300001'

相关问题