[SQL] Wiecej niz jedno zapytanie
mlekovita
22.03.2020
Witam, czy da rade jakoś umieścić dwa zapytania w jednej funkcji?
public wszystkienazwy(id) { if (!is_user_connected(id) || end) return PLUGIN_HANDLED; new queryData[192], tempId[1]; tempId[0] = id; formatex(queryData, charsmax(queryData), "SELECT id, name, kills FROM `jb_gang`"); SQL_ThreadQuery(sql, "wszystkienazwy_handled", queryData, tempId, sizeof(tempId)); return PLUGIN_HANDLED; } public wszystkienazwy_handled(failState, Handle:query, error[], errorNum, tempId[], dataSize) { if (failState) { log_to_file("jb_gangserr.log", "[GANGS] SQL Error: %s (%d)", error, errorNum); return PLUGIN_HANDLED; } new id = tempId[0]; if (!is_user_connected(id)) return PLUGIN_HANDLED; static clanName[32], clanId; while (SQL_MoreResults(query)) { clanId = SQL_ReadResult(query, SQL_FieldNameToNum(query, "id")); SQL_ReadResult(query, 0, clanName, charsmax(clanName)); new iMenu = menu_create("Wszystkie klany", "Menu_dostepne_handler"); menu_additem(iMenu, clanName, clanId); SQL_NextRow(query); } // new queryData[192], tempId[1]; // // tempId[0] = id; // // formatex(queryData, charsmax(queryData), "SELECT * FROM `jb_gang_skills` WHERE clanId = '%i'", clanId); // // SQL_ThreadQuery(sql, "wszystkienazwy_handled", queryData, tempId, sizeof(tempId)); return PLUGIN_HANDLED; }
To dodatkowe zapytanie oddzielilem slashami / na dole
Czyli ma to wygladac tak ze pobierze najpierw te wyzej zapytania z jednej tabeli a pozniej z drugiej na podstawie id ktorego wybral
mlekovita
22.03.2020
Tak
Super a jakby pan to zrobił z przykładem wyżej bo ja kombinuje i coś dojść do tego nie moge
Rivit
23.03.2020
musisz uzyc joinow.
Podaj struktury tabeli
I poczytaj sobie to: https://www.mysqltut...inner-join.aspx lub to: https://www.guru99.com/joins.html
Mniej więcej coś takiego:
SELECT id, name, kills, kolumna_z_skills1, kolumna_z_skills2, kolumna_z_skills3, FROM `jb_gang` JOIN `jb_gang_skills` ON `jb_gang`.id = `jb_gang_skills`.kolumna_z_id_klanu
(nie znam składni mysql, wiec mozliwe ze do poprawy to jest, ale juz wykminisz sobie)