سلام
من یک جدول دیتابیس دارم که به صورت inner join شده هست. یعنی توی جدول به جای اینکه ای دی یوزر باشه اسمش هست. حالا می خوام یه جدول دیگه درست کنم و اسم ها رو به اون منتقل کنم و توی جدول اصلی فقط ای دی یوزرها باشه. بهترین راه چیه؟
اینو بگم که تعداد رکورد های جدول زیاده و یوزرها در جاهای مختلف تکرار شدند که نمیشه از اول به ترتیب شماره گذاری بشه و عدد بالا بره.
@hajmahdi.s
سلام
من فکر میکنم اصطلاح inner join رو دارید اشتباه به کار میبرید اگر نه؟ شما باید دو تا جدول داشته باشید که از اون دوتا یه جدول به دست میاد که می شه گفت بهش inner join. در اینصورت ساختار او دوتا جدولتون رو بفرمایید
اما من فکر میکنم شاید منظورتون self joint هست .که ارتباط یک جدول با خودش هست.لطفا راهنمایی کنید تا مشکل رو بتونیم با هم حل کنیم
من یه جدول دارم که توش چندتا ستونه
عنوان - متن - نویسنده - موضوع
میخوام نویسنده ها رو توی یک جدول جدا ببرم و توی جدول اول فقط ای دی هاشون بمونه. (یه سری از نویسنده ها تکراری هستن. و نمیشه به ترتیب شماره گذاری کنم)
راه حلش چیه؟
توی اکسل یا نرم افزار دیگه ای میشه اینکار رو انجام داد؟
@viva.mohammadi
سلام برای گرفتن لیست اسامی بدون تکرار و 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 رو آپدیت کنی
@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 برداره.
متاسفانه هیچکدوم مشکل من رو حل نکرد
تصمیم گرفتم کل جدول رو خروجی بگیرم و از طریق اکسل تکراری ها رو حذف کنم.
بعد با یه کد پی اچ پی و حلقه فور ای دی اختصاص بدم به هرکدوم از یوزر ها
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟