مهدی سمیعیان
6 سال پیش توسط مهدی سمیعیان مطرح شد
5 پاسخ

جداسازای یوزر از جدول دیتابیس

سلام
من یک جدول دیتابیس دارم که به صورت inner join شده هست. یعنی توی جدول به جای اینکه ای دی یوزر باشه اسمش هست. حالا می خوام یه جدول دیگه درست کنم و اسم ها رو به اون منتقل کنم و توی جدول اصلی فقط ای دی یوزرها باشه. بهترین راه چیه؟
اینو بگم که تعداد رکورد های جدول زیاده و یوزرها در جاهای مختلف تکرار شدند که نمیشه از اول به ترتیب شماره گذاری بشه و عدد بالا بره.


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
1

@hajmahdi.s
سلام
من فکر میکنم اصطلاح inner join  رو دارید اشتباه به کار میبرید اگر نه؟ شما باید دو تا جدول داشته باشید که از اون دوتا یه جدول به دست میاد که می شه گفت بهش inner join. در اینصورت ساختار او دوتا جدولتون رو بفرمایید
اما من فکر میکنم شاید منظورتون self joint هست .که ارتباط یک جدول با خودش هست.لطفا راهنمایی کنید تا مشکل رو بتونیم با هم حل کنیم


مهدی سمیعیان
تخصص : برنامه نویس وب/اندروید
@mahdidev 6 سال پیش آپدیت شد
0

من یه جدول دارم که توش چندتا ستونه
عنوان - متن - نویسنده - موضوع
میخوام نویسنده ها رو توی یک جدول جدا ببرم و توی جدول اول فقط ای دی هاشون بمونه. (یه سری از نویسنده ها تکراری هستن. و نمیشه به ترتیب شماره گذاری کنم)
راه حلش چیه؟
توی اکسل یا نرم افزار دیگه ای میشه اینکار رو انجام داد؟
@viva.mohammadi


Bahman Aliveisi
@roj 6 سال پیش مطرح شد
0

سلام برای گرفتن لیست اسامی بدون تکرار و id دادن به هر کدام از نویسنده ها

SELECT @id:=0;
SELECT  (@id:=@id + 1) AS num, `authorName` FROM(
SELECT authorName FROM `tableName` GROUP BY authorName
) AS T1

بعد برای جدول قدیمی یک ستون درست کن (author_id)
با یک join ساده میتونی ستون author_id رو آپدیت کنی


vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
0

@hajmahdi.s
به نظر من شما باید دو تا جدول بسازید یکی  Authors (نویسندگان) که شامل (id , AuthorName) باشه و یه جدول به نام Publishes (انتشارات) که شامل ( id,Author_Id, Title,Desc,Article,...) باشه
البته امکان داره یک کتاب رو چندتا نویسنده باهمکاری هم نوشته باشند که در اینصورت شما باید یه رابطه Many to Many  با استفاده از یک جدول رابط Conjunction Table ایجاد کنید. حالا اگر نخواهیم سختش کنیم همون حالتی که خودتون فرمودید رو در نظر میگیریم یعنی یک نویسنده چندتا کتاب یا مقاله نوشته و دلیلی نداره که در هر رکورد اسم نویسنده تکرار بشه.
خب حالا بریم سر اصل مطلب و اون اینکه چطور اون جدول رو تبدیل کنیم به دو تا جدول که رابطه  One to Many دارن:

INSERT INTO Authors
SELECT AuthorName from(SELECT DISTINCT AuthorName FROM oldAuthors)

کد بالا جدول Authors  رو بوجود میاره (oldAuthors اسم جدول قدیمی شماست که داده های تکراری داره)

خب مرحله بعدی تولید جدول Publishes هست که باید فیلد Auther_Id رو از جدول Authors برداره.


مهدی سمیعیان
تخصص : برنامه نویس وب/اندروید
@mahdidev 5 سال پیش مطرح شد
0

متاسفانه هیچکدوم مشکل من رو حل نکرد
تصمیم گرفتم کل جدول رو خروجی بگیرم و از طریق اکسل تکراری ها رو حذف کنم.
بعد با یه کد پی اچ پی و حلقه فور ای دی اختصاص بدم به هرکدوم از یوزر ها


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام