Получить информацию из таблицы с 2 условиями и 3 таблицами - PullRequest
1 голос
/ 05 апреля 2020
<?php

define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'websitefinal');

//connecting to database and getting the connection object
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

//Checking if any error occured while connecting
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    die();
} else {
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $id = $_POST['user_id'] ?? '';

    $query = "SELECT UL.* FROM users UL INNER JOIN active_crew L JOIN search SL      ON L.user_id = UL.user_id AND L.search_id = SL.search_id";
    $sql = mysqli_query($conn, $query);
    $result2 = array();
    while ($row = mysqli_fetch_array($sql)) {
        array_push($result2, array(
            'user_id' => $row[0],
            'name_full' => $row[1],
            'Propic' => $row[4]));
    }

    echo json_encode($result2);
    mysqli_close($conn);
}

Я пытаюсь получить информацию о "таблице пользователей" пользователей в таблице активных членов команды, которые дежурят по заданному c поиску "таблицы поиска", но я не получаю никакой информации обратно

пользовательская таблица, из которой я хочу получить данные из первичного и внешнего ключа "user_id"

таблица экипажа имеет только 2 столбца search_id и user_id - оба являются внешним ключом

таблица поиска, которая должна иметь описание обязанности "search_id" первичный и внешний ключ

связь ключей активна для всех столбцов search_id.crew с search_id.search user_id.crew с user_id.user

1 Ответ

0 голосов
/ 05 апреля 2020

Вы должны установить условия каждого соединения в предложении ON каждого JOIN, а не всех в последний ON:

SELECT UL.* 
FROM users UL 
INNER JOIN active_crew L ON L.user_id = UL.user_id 
INNER JOIN search SL ON L.search_id = SL.search_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...