#php #sql
Есть две таблицы sql:
Одна с заказами, а другая со статусами заказов:
первая таблица:
|id|id_status|
|1 |1 |
|2 |2 |
|3 |3 |
Вторая таблица:
|id_status|status |
|1 |Ожидание|
|1 |Ожидание|
|2 |Готов |
|2 |Готов |
|3 |Отменен |
Я делаю это так:
$connection = mysqli_connect('localhost', 'login', 'password', 'namedb');
$sqldata = mysqli_query($connection, "SELECT * FROM table1 INNER JOIN table2
ON id=1 ");
$results = array();
while ($result = mysqli_fetch_array($sqldata)) {
echo $result['status']; }
Я хочу получить имя статуса Ожидание если в первой таблице id = 1, но вместо корректного
результата у меня фигня выходит(
Ответы
Ответ 1
Поменяйте запрос таким образом, если вы хотите только для id=1 SELECT `table2`.`status` as `status` FROM `table1` LEFT JOIN `table2` using(`id_status`) WHERE `table1.id` = 1 или так, если для всех SELECT `table1`.`id` as `id`, `table2`.`status` as `status` FROM `table1` LEFT JOIN `table2` using(`id_status`)Ответ 2
Неверный синтаксис запроса SELECT table1.id, table2.status FROM table1 INNER JOIN table2 ON table1.id_status=table2.id_status
Комментариев нет:
Отправить комментарий