小编Spa*_*tus的帖子

从选择子查询中获取多列

SELECT 
   *, 
   p.name AS name, 
   p.image, 
   p.price,
   ( 
       SELECT ps.price 
       FROM product_special ps 
       WHERE p.id = ps.id
         AND ps.date < NOW() 
       ORDER BY ps.priority ASC, LIMIT 1
   ) AS special_price,
   ( 
       SELECT ps.date 
       FROM product_special ps 
       WHERE p.id = ps.id
         AND ps.date < NOW() 
       ORDER BY ps.priority ASC, LIMIT 1
   ) AS date
FROM product p LEFT JOIN product_special ps ON (p.id = ps.id)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我重复相同的子查询只是为了得到另一列。我想知道有没有更好的方法来做到这一点?

id是两个表中的主键。如果有帮助,我可以让product_special.priority变得独一无二。

subquery

35
推荐指数
5
解决办法
16万
查看次数

MySQL:在列中拆分值以获取多行

我在表中有一些数据,如下所示:

product_id      | categories
----------------+-------------
10              | 9,12
11              | 8
12              | 11,18,5
Run Code Online (Sandbox Code Playgroud)

我想要一个会产生这个输出的选择语句:

product_id      | category_id
----------------+-------------
10              | 9
10              | 12
11              | 8
12              | 11
12              | 18
12              | 5
Run Code Online (Sandbox Code Playgroud)

我不知道如何表达这种情况才能用谷歌搜索它。

mysql select

7
推荐指数
1
解决办法
5万
查看次数

标签 统计

mysql ×1

select ×1

subquery ×1