SQL otomatik yumuşatma katılmak bıraktı?

4 Cevap php

Ben sadece nedeniyle benim katılmak tablolarda sütun adlarını tekrarlayarak benim veritabanı aramaları aliasing başlamak zorunda gidiyorum fark etti. Otomatik olarak tablo adı bir önek ile döndürülen, böylece bütün sütun adlarını diğer ad SQL anlamanın bir yolu var mı? Aksi takdirde sadece bazılarını başka ad zaman oldukça kafa karıştırıcı gibi görünüyor. Sadece ekstra kod ton yazmadan tutarlı olmaya çalışıyorum.

$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 Cevap

Hayır, ama tablo diğer adları kullanarak biraz daha kolay yaşam yapabilirsiniz:

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

ismi ile onları erişmek istiyorsanız, etrafında hepsi aliasing hiçbir yolu yoktur az yazmak zorunda böylece sql tablolarında takma tabloları kullanabilirsiniz, ama aslında php gelen sütunları erişmek için.

Ayrıca php gelen indeksleri ile sütunlar erişebilirsiniz, ama bu bakım kabus

Ben her zaman takma tablo isimleri tavsiye ederim. Eğer takma atlamak eğer, daha sonra okumak için çok zor hale getirir.

Bilgi için, MySQL 5.6 bir gotcha gidecekseniz (muhtemelen diğerleri!)

SELECT * FROM table1 LEFT JOIN table2 ON PKI = FKI

beklendiği gibi çalışır .. ama son zamanlarda ben bir sorgu içerisinde 'lefy' olarak 'sol' ve o da çalıştı mispelt ama bir standart ile katılın! bu nedenle

SELECT * FROM table1 LEFY JOIN table2 ON PKI = FKI

Ayrıca kelime lefy için herhangi bir yerine yaptığı gibi gayet güzel çalışıyor, böylece sorgu değişen bir yazım yanlışı dikkat!