簡體   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