繁体   English   中英

MySql 获取其中一列等于另一列等于另一表中的另一列的行

[英]MySql get rows where one column equals to another colum in another table where one column is equal

我有两个表:

tbl_post 和 tbl_public

tbl_post:

id | post_id   |  author  |  date (unix time)
--------------------------------
 0 |  123456   | User 1   |  1489857236
 1 |  123457   | User 2   |  1489857237
 2 |  123458   | User 3   |  1489857238

tbl_public:

    id | post_id | public | date (unix time)
    -----------------------------------------
 --> 0 |  123456 |  0     |  1489857236
     1 |  123457 |  1     |
     2 |  123458 |  0     |
 --> 3 |  123456 |  1     |  1489857239

我想获取所有行,其中 user = "User 1" 和表 tbl_public 中最新的(按日期排序)公共列大于 0 按日期排序 DESC

你能帮我查询命令吗? :)

您可以通过使用INNER JOIN来做到这一点,语法如下:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

请简要说明您的需求,尽管我尝试了我从您的问题中理解的内容。 让我知道它是否对你有用。

查询语句:

SELECT
    tp.post_id,
    tp.author,
    tpb.public,
    tpb.date
FROM
    tbl_post tp
    LEFT JOIN tbl_public tpb ON (tp.post_id = tpb.post_id)
WHERE
    tp.author = 'User 1'
ORDER BY
    tpb.date DESC;
SELECT
  *
FROM
  tbl_post 'a'
  INNER JOIN tbl_public 'b' ON a.post_id = b.post_id
WHERE
  author = 'User 1'
  AND public > 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM