【问题标题】:SQL for "category" and "item" table“类别”和“项目”表的 SQL
【发布时间】:2017-08-12 07:43:11
【问题描述】:

我有 2 个表,1) 类别表和 2) 项目表

类别表字段为:1) cat_id 2) cat_name 项目表字段为:1) cat_id 2) item_id 3) item_name

分类表数据:

|1|Cat A|
|2|Cat B|
|3|Cat C|

项目表数据:

|NULL|1|Item 1|
|1|2|Item 2|
|NULL|3|Item 3|
|2|4|Item 4|
|2|5|Item 5|

我想要的 sql 输出必须是这样的:(显示所有空类别项目,但多个类别的“不同”项目”

|NULL|1|Item 1|
|1|2|Item 2|
|NULL|3|Item 3|
|2|4|Item 4|

并且还想点赞:(如果同一类别中有多个“项目”,则随机)

|NULL|1|Item 1|
|1|2|Item 2|
|NULL|3|Item 3|
|2|4|Item 4|

&

|NULL|1|Item 1|
|1|2|Item 2|
|NULL|3|Item 3|
|2|5|Item 5|

我该如何解决?移动端数据库可以是“MySQL”和“SQLite”。

【问题讨论】:

标签: mysql sql sqlite


【解决方案1】:
SELECT cat_id,
       item_id,
       item_name,
       MIN(random())  -- selects a random item from the group
FROM Item
WHERE cat_id IS NOT NULL
GROUP BY cat_id

UNION ALL

SELECT NULL,
       item_id,
       item_name,
       NULL
FROM Item
WHERE cat_id IS NULL

ORDER BY item_id;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多