MySQL连接查询问题

标签 mysql join

我有下表。

PHONES
 - id
 - name
 - colour
 - size

STOCK
 - store_id
 - phone_id
 - instock

STORES
 - id
 - name

LINKS
 - store_id
 - phone_id
 - url

我想从 PHONES 中选择名称、颜色、尺码,从 STOCK 中选择库存,从 STORES 中选择名称,并从 LINKS 中选择 url,其中 stock.phone_id = Phones.id = links.phone_id AND stock.store_id = links.store_id AND store。 id = stock.store_id。

我想要输出,phone.name,phone.colour,phone.size,stock.instock,stores.name,links.url。

这是我当前的查询。我没有收到与该商店和电话 ID 相关的具体链接。

SELECT DISTINCT(s.phone_id), st.name, st.logo_url, l.url, s.instock, s.datetime, p.model, p.colour, p.size 
FROM stock AS s, stores AS st 
INNER JOIN links AS l, phones AS p 
WHERE s.phone_id = p.id 
AND s.phone_id = l.phone_id 
AND s.store_id = l.store_id 
AND s.store_id IN ('3','4','5','6','8') 
AND s.phone_id = '5' 
ORDER BY datetime 
DESC LIMIT 5

最佳答案

SELECT p.name, p.colour, p.size, st.instock, s.name, l.url
FROM phones p
INNER JOIN links l ON l.phone_id = p.id
INNER JOIN stores s ON s.id = l.store_id
INNER JOIN stock st ON st.store_id = s.id AND st.phone_id = p.id
WHERE s.id IN ('3', '4', '5', '6', '8')
AND p.id = '5'

datetime 未在您的表描述中定义,因此我忽略将其添加到查询中,但这应该提供您正在查找的内容。

关于MySQL连接查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5354912/

相关文章:

php - 调用返回多行的 mysql 存储过程时出错

php - 获取 child 项目总数表,mysql/php

mysql - 优化 SQL 查询

R:如何在一个数据框中加入重复的行

python - 如何连接 2 个数据框并基于过滤器 pyspark 添加新列

MySQL:将 3 个查询合并为一个

mysql - 比较没有时间元素的日期时间字段

mysql - SQL 查询显示零而不是未显示的记录

sql - 如何在 MySQL 中执行 FULL OUTER JOIN?

MySQL如何将两个JOINed表的列求和成一个新列?