Изменить id - MySQL

  1. Всем привет. Есть две таблицы. В первой альбомы, во второй фотки. Автор альбомов везде user_id = 1. А вот авторы фоток разные. Нужен запрос, который изменит user_id альбомов в зависимости от user_id фоток.Cделал так


textual

Код к задаче: «Изменить id - MySQL»

/* Create a table called cms_photo_albums */
CREATE TABLE cms_photo_albums(id INTEGER, user_id INTEGER);
 
/* Create few records in this table */
INSERT INTO cms_photo_albums VALUES(1,0);
INSERT INTO cms_photo_albums VALUES(2,0);
INSERT INTO cms_photo_albums VALUES(3,0);
INSERT INTO cms_photo_albums VALUES(4,0);
INSERT INTO cms_photo_albums VALUES(5,0);
 
/* Create a table called cms_photo_files */
CREATE TABLE cms_photo_files(id INTEGER, album_id INTEGER, user_id INTEGER);
 
/* Create few records in this table */
INSERT INTO cms_photo_files VALUES(11,1,123);
INSERT INTO cms_photo_files VALUES(12,1,123);
INSERT INTO cms_photo_files VALUES(13,3,777);
INSERT INTO cms_photo_files VALUES(14,5,999);
INSERT INTO cms_photo_files VALUES(15,7,999);
 
 
 
UPDATE  cms_photo_albums SET user_id = (SELECT user_id FROM cms_photo_files WHERE  cms_photo_files.album_id = cms_photo_albums.id);
 
SELECT * FROM cms_photo_albums;

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.000 из 5



Похожие ответы
  1. Вроде все верно ведь пишу?My

  1. Дано: простая таблица с 2 колонками id(a_i), value(varchar). Дамп такой: 1-картошка 2-яблоко 3-помидор 5-тыква 9-баклажан Нужно: получить 4 или 6 или 7 или 8. Разрешено: использовать php. Не разрешено: делать SELECT * ... WHERE 1 и проверять каждую запись, т.к. возможно в таблице будет сотни тысяч записей.

  1. Добрый день! Есть таблица. В ней нужно выбирать все, но только последние значения i_id по data_id.My

  1. На вход поступает строка и известен ID игры, предположим, что он равен 95. Есть следующие таблицы. 1. games (Таблица игр), в ней лежат две заявки команд (А и Б) на матч 2. bids_teams_matches (Зявки команд на матчи) 3. bids_players_matches ( Заявки игроков на матчи), в ней есть ссылки на id заявок команд на матчи и id заявок игроков на чемпионат 4. bids_teams_champs (Заявки команд на чемпионаты) 5. bids_players_champs (Заявки игроков на чемпионаты) - в ней есть ссылка на player_id, это id игрока из таблицы players 6. Players (игроки) - отсюда нужно достать 3 поля first_name, second_name, last_name от неполного вхождения строки вот такой запрос

  1. | ID | meta_name | meta_value ------------------------------------- |1| name1 | 48 | |1| name2 | 6 | |1| name3 | 7 | |2| name1 | 48 | |2| name2 | 6 | |2| name3 | 12 | |3| name1 | 48 | |3| name2 | 19 | |3| name3 | 7 | Как выбрать id, у которых (meta_name=name1 and meta_value=48) and (meta_name=name2 and meta_value=6)? Т.е. в результате должно быть выбрано 1 и 2

  1. Добрый вечер По моей логике нужен такой вариант

  1. Есть код, отправляем данные в бд в одну таблицу далее нам нужно сразу отправить другие данные во вторую таблицу, но из первой таблицы нам нужно узнать ID которое AUTO_INCREMENT чтобы вставить это значение во вторую таблицу, пробовал и mysql_insert_id(); и last_insert_id(); и через запрос, ничего не помогает, вторая запись даже не записывается, только если ставлю mysql_insert_id(); то запись идет во вторую таблицу но айди пишется не тот который нужен. mysql_insert_id(); постоянно ноль пишет. Кто что подскажет как айди получить? Вот код PHP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = array(     PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,     PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ); try {     $dbh = new PDO($dsn, $user, $password, $opt); } catch (PDOException $e) {     die('Подключение не удалось: ' . $e->getMessage()); }   function pdoSet($allowed, &$values, $source = array()) {     $set = '';     $values = array();     if (!$source) $source = &$_POST;     foreach ($allowed as $field) {         if (isset($source[$field])) {             $set.="`".str_replace("`","``",$field)."`". "=:$field, ";             $values[$field] = $source[$field];         }     }     return substr($set, 0, -2); }   //file_put_contents('log123.txt', print_r($_GET, 1), FILE_APPEND); if (isset($_GET['phone']) && !empty($_GET['phone'])) {     $values = array();     $values['phone'] = str_replace('+', '', $_GET['phone']);     $values['phone'] = str_replace('(', '', $values['phone']);     $values['phone'] = str_replace(')', '', $values['phone']);     $values['phone'] = str_replace(' ', '', $values['phone']);     $values['phone'] = str_replace('-', '', $values['phone']);     $values['name'] = $_GET['name'];     $values['domen'] = time();     if (!isset($_GET['short_name']) || $_GET['short_name'] == "") {         $values['short_name'] = 'Online';     } else {         $values['short_name'] = $_GET['short_name'];     }     $values['description'] = 'Заявка на кредит';     $values['date_add'] = time();     $values['access_part'] = '{"object-actual":[7,1],"object-archive":[7,0],"user-actual":[7,1],"user-friend":[7,1],"blacklist":[1,1],"fin-stats":[1,0],"list-source":[1,0],"logs":[5,0],"settings":[3,0],"stats":[1,0],"users":[3,1]}';     if (!isset($_GET['company_id']) || $_GET['company_id'] == "") {         $values['company_id'] = 0;     } else {         $values['company_id'] = $_GET['company_id'];     }     $allowed = array('phone', 'name', 'domen', 'short_name', 'description', 'date_add', 'access_part');     $sql = "INSERT INTO crm_company SET " . pdoSet($allowed, $values, $values);     $stm = $dbh->prepare($sql);     $stm->execute($values);     $new_company_id = mysql_insert_id();               $sqll = "INSERT INTO `crm_settings2` (`obj_type`, `obj_region`, `sms_debug`, `sms_meet_txt`, `sms_pass_txt`, `sms_object_send_txt`, `sms_base_add_txt`,                            `sms_extend_txt`, `sms_cli_add_txt`, `obj_subtype`, `obj_type_house`, `obj_source`, `sms_settings_id`, `company_id`) VALUES                            ('Комната,1-комнатная,2-комнатная,3-комнатная,Дом,КомнатаКП,1-комнатнаяКП,2-комнатнаяКП,3-комнатнаяКП,4-комнатнаяКП,ТанхаусКП,ДомКП',                            'Ленинский,Центральный,Советский,Калининский,Курчатовский,Тракторозаводский,ЧМЗ,Парковый,Тополиная аллея,Залесье,Чурилово,Копейск',                            '0', '{name} у вас назначена встреча {meet} по адресу .. (вход со стороны магазина Равис)ваш персональный менеджер {manager-name} {manager-thirdname}',                            'Ваш логин: {mobile}, Ваш пароль: {pass}. Компания Миг', '{addres} {phone} {name-holder}',                            'Спасибо за сотрудничество, ваш объект добавлен в базу собственников, хороших вам жильцов.', 'Тестовая рассылка', '{name} спасибо за сотрудничество',                            'Новостройка,Вторичное жильё,Элитное жильё,Загородное жильё,Коммерческое,Земельные участки', 'Кирпичный,Панельный,Блочный,Монолитный,Деревянный',                        'Интернет,Авито,ДомЧел,74дом,Вывеска,Визитка,Рекомендации,Сайт,Тумба,Из рук в руки-сайт,Из рук в руки-газета,Вконтакте-группа,Вконтакте-реклама,Майл.ru,Фейсбук,E-mail,СМС',                        '56', '".$new_company_id."')";     $stmm = $dbh->prepare($sqll);     $stmm->execute($values);     echo $_GET['callback'] . '(' . "{'success' : '1'}" . ')';

  1. Помогите сделать выборку как на скриншоте