簡體   English   中英

如何加入表格並顯示它?

[英]How to join table and display it?

我試圖合並 2 張桌子。

例如,表 A 和 B。

  • 表 A 有 2 列(id 和 value)
  • 表 A 有 3 行 (1, a)、(1, b) 和 (1, c)。
  • 表 B 有 1 列和 1 行 (id) 是 (1)

我試過用join table來做,結果: 3 rows id and value is (1, a), (1, b), (1, c)

它不是我想要的,我需要像這樣創建:

結果:

只有 1 行,id 為 (1),值為 (a, b, c)

但是,我只想從“值”中獲取“c”數據。

那么,我想要的結果是(1,c),如何?

編輯:

檢查,有工作: http://sqlfiddle.com/#!9/b0fd3b/2

它不適用於我的代碼,找不到結果。 檢查這個:

<?php
if (isset($_GET['page_no']) && $_GET['page_no']!="") {
  $page_no = $_GET['page_no'];
}
else {
  $page_no = 1;
}
$total_records_per_page = 3;
$offset = ($page_no-1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$adjacents = "2"; 
$result_count = mysqli_query($conn, "SELECT COUNT(*) As total_records FROM b");
$total_records = mysqli_fetch_array($result_count);
$total_records = $total_records['total_records'];
  $total_no_of_pages = ceil($total_records / $total_records_per_page);
$second_last = $total_no_of_pages - 1; // total page minus 1
$result = mysqli_query($conn, "SELECT id, a.meta_key, a.meta_value FROM a JOIN b USING (id) WHERE a.meta_value = 'value2' LIMIT $offset, $total_records_per_page");
if (mysqli_num_rows($result) > 0) {
  while ($row = mysqli_fetch_array($result)) {
    echo $row['id'];
    echo $row['key'];
    echo $row['value'];
  }
}
else {
  echo "no found";
}
?>
// pagination
....

您可以執行以下操作:

select a.*
from a join
     b
     on a.id = b.id
order by a.value desc
limit 1;

我對為什么需要join有點困惑:

select a.*
from a
order by value desc
limit 1;

但你似乎想要join

試試下面的查詢。 我希望它會得到你想要的結果。

SELECT a.id, a.value, 
FROM a
INNER JOIN b ON a.id=b.id; 
ORDER BY
    a.id DESC;

只有 1 行,id 為 (1),值為 (a, b, c)

SELECT id, GROUP_CONCAT(value ORDER BY value) values
FROM a
JOIN b USING (id)
GROUP BY id

但是,我只想從“值”中獲取“c”數據。

SELECT id, a.value
FROM a
JOIN b USING (id)
WHERE a.value = 'c'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM