Как присоединиться к таблице и отобразить ее? - PullRequest
0 голосов
/ 05 августа 2020

Я попытался объединить 2 таблицы.

Пример, таблица A и B.

  • Таблица A имеет 2 столбца (id и значение)
  • Таблица A иметь 3 строки (1, a), (1, b) и (1, c).
  • Таблица B имеет 1 столбец, а 1 строка (id) - (1)

Я пытался сделать это с помощью таблицы соединений , результаты: идентификатор 3 строки и значение (1, a), (1, b), (1, c)

Это не то, что я хочу, мне нужно создать как:

Результаты:

Только 1 строка, идентификатор (1) и значение (a, b , c)

Но , я просто хочу получить данные «c» из «value».

Итак, , результат, который я хочу, это (1, c), и как?

Изменить:

Проверить, есть ли работа: http://sqlfiddle.com/#! 9 / b0fd3b / 2

Это не работает в моем коде, resluts не найден. Проверьте это:

<?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
....

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

Попробуйте запрос ниже. Надеюсь, он даст желаемый результат.

SELECT a.id, a.value, 
FROM a
INNER JOIN b ON a.id=b.id; 
ORDER BY
    a.id DESC;
0 голосов
/ 05 августа 2020

Только 1 строка, идентификатор (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'
0 голосов
/ 05 августа 2020

Вы можете сделать что-то вроде:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...