1

我不知道如何解释我的问题,所以这里是一个例子:

餐桌用品

id_product / name_product
1          / aphone
2          / bphone

表 tyds,product_tyd = id_product

id_tyd     / product_tyd   /    user_tyd   /   action_tyd    /  data_tyd
11          /      1        /      1        /      5          /   null
12          /      1        /      1        /      8          /   150
13          /      1        /      2        /      3          /   null
14          /      1        /      2        /     -8          /   250
15          /      2        /      3        /      2          /   null
16          /      2        /      3        /      8          /   150
17          /      2        /      2        /      6          /   null
18          /      2        /      2        /      8          /   250

table collections 与 table tyds 完全相同,但对于旧行:

id_collection / product_collection / user_collection / action_collection / data_collection

    1         /      1             /      9          /      5            /   null
    2         /      1             /      9          /     -3            /   null
    3         /      1             /      9          /     -8            /   150

所以我想选择 - action_collection = 8 OR -8 - action_tyd = 8 OR -8 的行,每行 data_tyd 和/或 data_collection 值,但仅适用于特定的 id_product ...

类似的东西:

结果我期待对 id_product = 1 的请求:

id_product    /    user_x    /   action_x  / data_x
     1        /       1      /       8     /   150
     1        /       2      /      -8     /   250
     1        /       9      /      -8     /   150

所以关键是要依赖action_tyd和data_tyd,我在其他请求中使用CASE并过滤行,无论哪个表在......除了这当然不是同一个列名......

我希望我的例子很清楚......我实际上是在尝试在两个单独的请求中实现它。一个用于表 tyds,一个用于表集合,我认为可以完成,但一个请求也可以完成这项工作......

谢谢你的帮助 !

4

1 回答 1

1

我认为您应该将tydsandcollections合并到一个表中(使用合适的列来标记每条记录源自哪个表),但就目前情况而言,您只是希望执行以下操作UNION

SELECT product_tyd AS id_product,
       user_tyd    AS user_x,
       action_tyd  AS action_x,
       data_tyd    AS data_x
FROM   tyds
WHERE  product_tyd = 1 AND action_tyd IN (-8,8)

UNION ALL

SELECT product_collection,
       user_collection,
       action_collection,
       data_collection
FROM   collections
WHERE  product_collection = 1 AND action_collection IN (-8,8)
于 2013-05-13T14:46:24.957 回答