道歉,因为我对SQL很新,但我很难找到问题的解决方案。
我有两张表格如下:
评论表
列:姓名,评论,评级a,评级b,评级c,venue_id
地点表
列:id,venue_name,description,address
我想从场地表中获取同一行中的ID与评论表中的场地ID匹配的名称,这可能吗? (the venue_id和id匹配)
例如,如果我打印这个我会
venue_name (from the venue table) rating a (from the comment table) rating b (from the comment table) rating c (from the comment table)
(通过评论表中的场地ID和场地表中的ID链接到venue_name的评级)
如果这没有意义,那么道歉,但如果可能的话,我会感激一些帮助。 感谢答案 0 :(得分:1)
使用简单连接查询。
SELECT Venue.venue_name, Comment.rating_a, Comment.rating_b, Comment.rating_c
FROM Venue
INNER JOIN Comment
ON Venue.id=Comment.venue_id;
这会给你:
答案 1 :(得分:0)
select Venue.venue_name,
rating_a, rating_b,
rating_c from Venue,
Comment
where Comment.venue_id = Venue.id;
说明:
Venue.venue_name和三个rating_标识符都告诉SQL要输出哪些列(注意:您可能必须在三个评级列前面添加注释。但我认为它可以不用,因为这些列是唯一命名)。
from语句必须包含要从中绘制数据的每个表(无论是显示还是where子句)。
最后,where子句是Venue中的行如何与Comment中的行相关联(它们共享一个公共的venue_id)。您需要确保Venue中的venue_id是主键(理想情况下,将其设置为auto_increment)
答案 2 :(得分:0)
您可能需要在场地表中设置id的引用键。只需将venue_id作为主键,并将其引用到Venue表中的id。
所以sql查询将是 -
SELECT venue.venue_name,
rating_a.comment,
rating_b.comment
FROM venue, comment
INNER JOIN venue
ON Comment.venue_id = Venue.id;
或只使用
select Venue.venue_name,
rating_a,
rating_b
from Venue, Comment
where Comment.venue_id = Venue.id;
首先要注意的是,当连接这两个表时,您需要设置主键和外键...为Venue表设置主键,然后设置外键。您可以将Venue表的主键设置为自动增量,然后将外键作为-id-引用到Comment表中的venue_id。
答案 3 :(得分:0)
您可以使用SQL JOIN
尝试
SELECT s.*, AS venue_name
FROM venuetable s
LEFT JOIN commenttable
AS r
ON r.venue_id