Mysql - 列关联/加入

标签 mysql join subquery

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

餐 table 用品

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 或 -8 - action_tyd = 8 或 -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,一个用于表集合,我认为它可以完成,但一个请求也可以完成这项工作......

感谢您的帮助!

最佳答案

我认为你应该将 tydscollections 合并到一个表中(用一个合适的列来标记每条记录来自哪个表),但就目前情况而言你'我们只是想执行一个 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)

关于Mysql - 列关联/加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16524746/

相关文章:

jQuery + AJAX 追加淡入淡出

mysql - 如何写这个基于三列的自连接

MySQL - 将 .CSV/Excel 文件导入 MySQL

mysql - 如何在 MySQL 中进行全外连接

mySQL - 为每个帖子选择 2 个最新评论

mysql - Laravel 中某个字段最大的 eloquent 的唯一记录?

mysql - 合并行并将它们的值放在 mysql 中的单独列中

mysql - 将 plsql 函数的值复制到新表中

mysql - 连接图像数组 SQL

MySQL 还不支持 Limit&& in/all?