我在MySQL中使用简单的查询需要比预期更长的时间。我认为这将是一个嵌套查询,但我不容易看到它。
我有3个表:用户,评论和企业。注释包含business_id,user_id为外键。
所以我想要users.name和comments.review的结果,包含业务号。
所以我的第一次(和错误的)尝试是:
SELECT users.name, users.image, comments.review
FROM reviews JOIN users JOIN businesses
WHERE reviews.user_id=users.id AND reviews.business_id=4;
我想设置PrimaryKey.user_id等于ForeignKey.users.id。 从所有评论中,我想从business_id = 4中获取这些评论。
它让我无法理解' WHERE'条款。所以不确定我是否可以使用嵌套查询或使用JOIN子句来解决这个问题?
任何帮助将不胜感激! 谢谢你们。 [编辑查询]
答案 0 :(得分:1)
尝试此操作,如有任何疑问,请与我联系。
select c.name,c.image,a.review
from
comments a
inner join
(select * from buisnesses where buisness_id = 4) b
on a.buisness_id = b.buisness_id
inner join
users c
on a.user_id = c.user_id;
或
select b.name,b.image,a.review
from
comments a
inner join
users b
on a.user_id = b.user_id
where a.buisness_id = 4;
答案 1 :(得分:1)
尝试一下:
SELECT
users.name,
users.image,
comments.review
FROM reviews
JOIN users
ON reviews.user_id = users.id
JOIN businesses
ON reviews.business_id = business.business_id
WHERE reviews.business_id=4;
由于您未使用业务表中的任何列,因此您可以将其从查询中删除:
SELECT
users.name,
users.image,
comments.review
FROM reviews
JOIN users
ON reviews.user_id = users.id
WHERE reviews.business_id=4;