Zapytanie - odczyt z bazy danych.

0

witam, w jaki sposób mogę ten kod przerobić zeby czytało account_id z accounts.
kod wyglada tak

    query << "SELECT `name` FROM `players` WHERE `account_id` = " << accno;
0

zrobiłem to tak

    query << "SELECT `name` FROM `players` WHERE `account_id` FROM `accounts` = " << accno << " AND `deleted` = 0 FROM `players` "; 

error mysql_real_query<>: SELECTnameFROMplayersWHEREaccount_idFROMaccounts= 123 ANDdeleted= 0 FROMplayers- MYSQL ERROR: you have an error in your SQL syntax: check the manual that corresponds to your MySQL serwer version for the right syntax to use near FROMaccounts= 123 ANDdeleted= 0 FROMplayersat line 1 <1064>

pomoże ktoś?

0

query << "SELECT account_id FROM nazwa_tabeli WHERE account_id = " << accno;

// PL:

Wybierz z bazy danych 'account_id' Z tabeli ... GDZIE account_id jest równe accno

0

pomoże ktoś? OMG

0

??????????

0

ciągle potrzebuje pomocy

    query << "SELECT `name` FROM `players` WHERE `account_id` = " << accno << " AND `deleted` = 0";
    if(!(result = db->storeQuery(query.str())))
        return account;

    do
    {
        std::string ss = result->getDataString("name");
        account.charList.push_back(ss.c_str());
    } 

chce w tym kodzie zeby account_id czytało z accounts
w tej chwili czyta z players ten kto sie zna to rozumie kod i nie muszę tłumaczyć

0

Grubo ... poczytaj najpierw o złączeniach tabel @Shakaz ma rację rozwiązanie masz podane ale nie masz gotowca i wydaje Ci się, że rozwiązania brak. Nie znam bazy danych, która mogłaby zrobić select coś from coś where coś from
Jeżeli faktycznie chcesz tabelę players połączyć z accounts to musisz użyć JOIN czyli np tak:

select cos from tab1 inner join tab2 on (tab1.IDPolaDoZlaczenia = Tab2.IDPolaDoZlaczeniaZTab1PrawdopodobnieForeginKey) where cos

Nie podałeś struktury, nie zrobiłeś przykładu na sql fiddle, nie podałeś nawet co chcesz uzyskać i dziwisz się, że nikt Ci gotowca nie daje ...

0
woolfik napisał(a):

Grubo ... poczytaj najpierw o złączeniach tabel @Shakaz ma rację rozwiązanie masz podane ale nie masz gotowca i wydaje Ci się, że rozwiązania brak. Nie znam bazy danych, która mogłaby zrobić select coś from coś where coś from
Jeżeli faktycznie chcesz tabelę players połączyć z accounts to musisz użyć JOIN czyli np tak:

select cos from tab1 inner join tab2 on (tab1.IDPolaDoZlaczenia = Tab2.IDPolaDoZlaczeniaZTab1PrawdopodobnieForeginKey) where cos

Nie podałeś struktury, nie zrobiłeś przykładu na sql fiddle, nie podałeś nawet co chcesz uzyskać i dziwisz się, że nikt Ci gotowca nie daje ...

to mi podaj opcje jak mogę coś takiego zrobić żeby działało w 100% tylko przykład
może zrobic 3x query? do każdego zapytania osobno czy lepiej tym joinem
jestem troche zielony ale co do tamtego postu to **** przecież koleś przekopiował to samo co miałem w pierwszym poście tylko zmienił z angielskiego na polski boshe...

0

Ech podaj nam tutaj DDL (kod obiektów sql czyli CREATE TABLE ...) obu tabel players i accounts to zobaczę co się da zrobić

0
woolfik napisał(a):

Ech podaj nam tutaj DDL (kod obiektów sql czyli CREATE TABLE ...) obu tabel players i accounts to zobaczę co się da zrobić

accounts

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for accounts
-- ----------------------------
DROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1528016 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of accounts
-- ----------------------------
DROP TRIGGER IF EXISTS `ondelete_accounts`;
DELIMITER ;;
CREATE TRIGGER `ondelete_accounts` BEFORE DELETE ON `accounts` FOR EACH ROW BEGIN
    DELETE FROM `bans` WHERE `type` IN (3, 4) AND `value` = OLD.`id`;
END
;;
DELIMITER ;

players

DROP TABLE IF EXISTS `players`;
CREATE TABLE `players` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `account_id` int(11) NOT NULL DEFAULT '0',
  `deleted` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`,`deleted`),
  KEY `account_id` (`account_id`),
  KEY `deleted` (`deleted`),
  CONSTRAINT `players_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0