SQL оставил включенный автоматический псевдоним? - PullRequest
2 голосов
/ 19 апреля 2010

Я только что понял, что мне придется начать создавать псевдонимы для вызовов базы данных из-за повторяющихся имен столбцов в моих таблицах соединений. Есть ли способ автоматически указать SQL псевдонимы всех имен моих столбцов, чтобы они возвращались с префиксом имени таблицы? В противном случае это выглядит довольно запутанно, когда только некоторые из них имеют псевдонимы. Просто пытаюсь быть последовательным без написания тонны лишнего кода.

$sql = "SELECT contracts.po_number, contracts.start_date, contracts.end_date, contracts.description, contracts.taa_required, contracts.account_overdue, jobs.id AS jobs_id, jobs.job_number, companies.id AS companies_id, companies.name AS companies_name
    FROM contracts
    LEFT JOIN jobs ON contracts.job_id = jobs.id
    LEFT JOIN companies ON contracts.company_id = companies.id
    WHERE contracts.id = '$id'
    ORDER BY contracts.end_date";

Ответы [ 4 ]

4 голосов
/ 19 апреля 2010

Нет, но вы можете сделать жизнь немного проще, используя псевдонимы таблиц:

SELECT c.po_number, c.start_date, c.end_date, c.description, 
    c.taa_required, c.account_overdue, j.id AS jobs_id, j.job_number, 
    cm.id AS companies_id, cm.name AS companies_name 
FROM contracts c
LEFT JOIN jobs j ON c.job_id = j.id 
LEFT JOIN companies cm ON c.company_id = cm.id 
WHERE c.id = '$id' 
ORDER BY c.end_date
0 голосов
/ 08 августа 2012

Для информации, есть ошибки в MySQL 5.6 (возможно, другие!)

ВЫБРАТЬ * ИЗ таблицы 1 LEFT JOIN table2 ON PKI = FKI

работает как ожидалось ... но недавно я неправильно ввел 'LEFT' как 'LEFY' в запросе, и это также работало, но со стандартным объединением! поэтому поэтому

ВЫБРАТЬ * ИЗ таблицы 1 LEFY JOIN table2 ON PKI = FKI

также отлично работает, как и любая замена слова LEFY, так что будьте осторожны с опечаткой, изменяющей ваш запрос !!

0 голосов
/ 19 апреля 2010

Я бы порекомендовал всегда псевдоним таблицы имен. Это затруднит чтение, если вы пропустите псевдоним.

0 голосов
/ 19 апреля 2010

вы можете использовать таблицы псевдонимов в своих инструкциях sql, поэтому вам придется писать меньше, но для фактического доступа к столбцам из php нет никакого способа обойти их все псевдонимами, если вы хотите получить доступ к ним по имени.

вы также можете получить доступ к столбцам с индексами из php, но это кошмар обслуживания

...