У меня есть две таблицы recipes_sa
со столбцами:
recipes_id recipes_name recipes_chef
---------- ------------ ------------
и chefs_sa
с колонками:
chefs_id chefs_name
-------- ----------
И я хочу получить ограниченное количество рецептов с указанием их данных от шеф-повара, используя INNER JOIN
и LIMIT
Я сделал следующую функцию:
function getLimitJoinData($data, $tbls, $ids, $abr, $type, $limit) {
$dataToSelect = implode($data, ',');
$q = "SELECT $dataToSelect";
$q.= " FROM (SELECT * FROM $tbls[0] LIMIT $limit) $abr";
for ($i=1; $i < count($tbls); $i++) {
$q .= " ".$type." JOIN ". $tbls[$i] ." ON " . $abr.'.recipes_chef' .' = '. $ids[$i-1][0];
}
}
И запрос такой
SELECT chefs_sa.chefs_name,
recipes_sa.recipes_name
FROM (SELECT * FROM recipes_sa LIMIT 8) rec
INNER JOIN chefs_sa ON rec.recipes_chef = chefs_sa.chefs_id
Но при выполнении запроса у меня было следующее предупреждение:
Предупреждение: PDO :: query (): SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'recipes_sa.recipes_name'
Я не понимаю, почему
У меня есть столбец recipes_name
в таблице recipes_sa
, и из того, что я прочитал, база данных сначала запускает « внутренний запрос » (тот, который имеет ограничение), затем столбец recipes_name не найден !!