50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

نمایش خروجی از دیتابیس دستور innerjoin با ستون تکراری

سلام و عرض ادب

3 جدول دارم که با دستور innerjoin خروجی گرفتم

$sql = "
SELECT ps_product.*, ps_category_lang.*, ps_product_lang.* FROM ps_product INNER JOIN ps_category_lang ON ps_category_lang.id_category = ps_product.id_category_default INNER JOIN ps_product_lang ON ps_product_lang.id_product = ps_product.id_product ORDER BY `ps_product_lang`.`id_product` DESC LIMIT 0,5 
";

فعلا به تمام ستون های همه جداول دسترسی دارم

ولی در دو جدول دو ستون تکراری هست

نام ستون link_rewrite در دو جدول وجود دارد

با دستور زیر توسط php چاپ نشد

row["ps_category_lang.link_rewrite"]
	
$row["ps_product_lang.link_rewrite"]

با این دستور هم فقط یک ستون شناسایی میکنه

$row["link_rewrite"]

نمیخوام نام ستون تغییر کنه

لطفا راهنمائی فرمائید

با تشکر

پرسیده شده در 1395/06/24 توسط

4 پاسخ

1

نام مستعار یا همون Alias یه نامی هست که شما به یه ستون میدید:

SELECT [Name] AS [Full Name], [Password] AS [User Password] FROM Users

نامی که بعد از AS جلوی نام ستون نوشته شده همون نام مستعار یا Alias هست.

پاسخ در 1395/06/24 توسط
0

دوست عزیز، شما دارید میگید که دو ستون هم نام، شما باید زمان گرفتن کوئری این دو ستون همنام رو با دو نام متفاوت مشخص کنید تا تو برنامتون بتونید مقادیر رو بخونید.

پاسخ در 1395/06/24 توسط
0

من همه موارد درست پیش رفتم ولی خطا میده

بدون قرار دادن نام مستعار sql زیر بخوبی اجرا میشه

SELECT ps_product.id_product, ps_product.id_category_default, ps_category_lang.id_category, ps_category_lang.link_rewrite 
FROM ps_product 
INNER JOIN ps_category_lang ON ps_category_lang.id_category = ps_product.id_category_default LIMIT 0,5 

من همه موارد درست پیش رفتم ولی خطا میده
بدون قرار دادن نام مستعار sql زیر بخوبی اجرا میشه
<sql>
SELECT ps_product.id_product, ps_product.id_category_default, ps_category_lang.id_category, ps_category_lang.link_rewrite 
FROM ps_product 
INNER JOIN ps_category_lang ON ps_category_lang.id_category = ps_product.id_category_default LIMIT 0,5 
<sql>
||http://programming.tosinso.com/files/get/61bbe3e8-7f94-4e3f-bcfb-343acbac644b||
ولی وقتی نام مستعار میدم خطای زیر میده
<sql>
SELECT ps_product.id_product, ps_product.id_category_default, ps_category_lang.id_category, ps_category_lang.link_rewrite AS  ps_category_lang.link_rewrite_cat
FROM ps_product 
INNER JOIN ps_category_lang ON ps_category_lang.id_category = ps_product.id_category_default LIMIT 0,5 
<sql>
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.link_rewrite_cat
FROM ps_product
INNER JOIN ps_category_lang ON ps_category_' at line 1

البته بررسی که کردم در قالب نمونه ساده میشه نام مستعار داد, یعنی موقعی که innerjoin نمیکنم , ولی وقتی نام جدول با عبارت . نقطه به ستون میچسبه و میخوام نام مستعار بدم خطا میده(درج نام مستعار درحالت innerjoin فک کنم متفاوت باشه؟)

ولی وقتی نام مستعار میدم خطای زیر میده

SELECT ps_product.id_product, ps_product.id_category_default, ps_category_lang.id_category, ps_category_lang.link_rewrite AS  ps_category_lang.link_rewrite_cat
FROM ps_product 
INNER JOIN ps_category_lang ON ps_category_lang.id_category = ps_product.id_category_default LIMIT 0,5 

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.linkrewritecat

FROM ps_product

INNER JOIN pscategorylang ON pscategory' at line 1

البته بررسی که کردم در قالب نمونه ساده میشه نام مستعار داد, یعنی موقعی که innerjoin نمیکنم , ولی وقتی نام جدول با عبارت . نقطه به ستون میچسبه و میخوام نام مستعار بدم خطا میده(درج نام مستعار درحالت innerjoin فک کنم متفاوت باشه؟)

پاسخ در 1395/06/25 توسط
0

ممنون از راهنمایی

ولی من دارم رو جداول پرستاشاپ کار میکنم و خروجی میگیرم

به همین خاطر نمیتونم دستکاری کنم

یک جایی نوشته بود از نام مستعار باید استفاده کرد که متوجه نشدم چطور با sql ادغامش کنم

پاسخ در 1395/06/24 توسط

پاسخ شما