/ / Як показати два рядки з однаковим ідентифікатором у двох різних стовпцях у datagridview за допомогою mysql? - c #, mysql, datagridview

Як показати два рядки з однаковими ідентифікаторами в двох різних стовпцях в datagridview, використовуючи mysql? - c #, mysql, datagridview

У мене тут дві таблиці.

1-й для користувача з user_id та ім'я та 2-е для контактів із contact_id,contact(2 against 1 user_id) and user_id(foreign key)

Чи можу я розділити контакти на два стовпці datagridview? люблю

User ID=1   Name=Ausaf   Contact1=0300468945    Contact2=0300733455

Якщо це можливо, як мені це зробити? Я використовую наступний код для отримання значень із бази даних

string sql = "select user.user_id as "User ID", name as "Name",contact as

"Contact" from biometric_attendance_system.user JOIN

biometric_attendance_system.contact ON user.user_id=contact.user_id";

try
{
MySqlDataAdapter load = new MySqlDataAdapter();
load.SelectCommand = sql1;

DataTable dt = new DataTable();
load.Fill(dt);

BindingSource bs = new BindingSource();
bs.DataSource = dt;

dataGridView1.DataSource = bs;
load.Update(dt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Відповіді:

0 для відповіді № 1

ви можете використовувати щось подібне, маючи на увазі, що немає лише одного або максимум двох контактів

SELECT u.user_id AS "User ID", u.user_name AS "Name", c1.contact_num AS "Contact1", c2.contact_num AS "Contact2"
FROM
users u
LEFT OUTER JOIN (SELECT a.user_id, a.contact_id, b.contact_num FROM (SELECT user_id, MIN(contact_id) AS contact_id FROM contacts GROUP BY 1) a INNER JOIN contacts b ON a.contact_id=b.contact_id) c1 ON c1.user_id=u.user_id
LEFT OUTER JOIN (SELECT a.user_id, a.contact_id, b.contact_num FROM (SELECT user_id, MAX(contact_id) AS contact_id FROM contacts GROUP BY 1) a INNER JOIN contacts b ON a.contact_id=b.contact_id) c2 ON c2.user_id=u.user_id