Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 4

Объединение двух таблиц

04.06.2010, 18:25. Показов 3164. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,
Подскажите с чего начать.
Есть база данный MySQL, в ней например таблица B со столбцами id(ключ),c,d,e,f. В эту базу парсется таблица A со столбцами id(ключ),b,c,d,e,f. Таблица A содержит строки таблицы В, а так же новые строки.

Нужно проверить, если строка из таблицы А, например №9, есть в таблице В то ничего не делаем. Если строки из таблицы А №9 нет в таблице В, ее нужно поместить на первое место таблицы В.

Второй этап. Если строка №3 из таблицы В, есть в таблице А, то ничего не делаем. Если строки №3 из таблицы В нет в таблицы А то из таблицы В ее надо удалить.

Сравнение строк происходит не по ключу id, а по значению ее полей.

Подскажите в какую сторону копать

Добавлено через 18 часов 45 минут
Начала со сравнения таблиц. Ищем строчку из первой таблицы, который не во второй и выводим ее. Как место вывода строки поместить ее на первое место таблицы

SQL
1
2
3
4
5
6
7
8
9
SELECT str, COUNT(*) AS co FROM
(SELECT CONCAT('ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT') AS str FROM $rooms
UNION
SELECT CONCAT('ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT') AS str2 FROM $rooms1) AS tmp
GROUP BY str
HAVING co=1") or die(mysql_error());
while ($row = mysql_fetch_array ($res)) {
echo $row["str"]."<br>";
}
Выскакивает ошибка Parse error: syntax error, unexpected T_STRING
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2010, 18:25
Ответы с готовыми решениями:

Объединение двух таблиц
Здравствуйте! Прошу помочь разобраться в этой путанице. В mysql я разбираюсь не так хорошо, как хотелось бы. Сразу извиняюсь, если вопросы...

Объединение двух таблиц
Как лучше объединить две табли и стоит ли это делать Есть тнформация о пользователях, часть ее присутствует не у всех, думаю создать...

Объединение двух таблиц по условию
Есть таблица 'tags' с тегами: ID | tag -------------------- 1 | личное 2 | видео 3 | путешествия и есть таблица...

8
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
06.06.2010, 10:34
Цитата Сообщение от jule4ka Посмотреть сообщение
Выскакивает ошибка Parse error: syntax error, unexpected T_STRING
Эта ошибка не в MySQL, а в PHP... видимо, где-то кавычки не закрыла... или наоборот лишние поставила.
0
33 / 33 / 12
Регистрация: 18.05.2010
Сообщений: 99
06.06.2010, 11:28
Цитата Сообщение от jule4ka Посмотреть сообщение
поместить на первое место таблицы
В реляционных базах данных у строк нет позиций, БД не делает разницы между первой записью и 21-й. Однако, строки можно упорядочивать по значению того или иного поля. Следовательно, вам нужно дополнительно поле, нечто вроде `position`. Вот оно и будет указывать на позицию строки.
Когда надо будет вставить запись на первое место, выполните нечто вроде
SQL
1
UPDATE myTable SET `position` = `position` + 1;
это "сдвинет" уже существующие строки вверх, а потом добавляйте свою строку с position = 1.
При выборке не забывайте указывать ORDER BY `position` ASC
1
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 4
06.06.2010, 11:48  [ТС]
А вот с этим как бороться? Запрос все тот же
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') or die(mysql_error())' at line 6
0
33 / 33 / 12
Регистрация: 18.05.2010
Сообщений: 99
06.06.2010, 22:38
Как уже сказал Humanoid, где-то что-то напутано с кавычками. Всё, что у вас идёт после HAVING co=1 -- это PHP код, а не SQL и в запрос он попадать не должен.
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
06.06.2010, 23:31
Покажи полностью, как вызывается mysql_query
0
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 4
13.06.2010, 00:46  [ТС]
1. Не могу выделить максимальный id
echo $im['id']; выводит Array

2. Не работает INSERT, хотя сам поиск работает, но новую строку в таблицу не хочет вставлять ни в какую. Подскажите с чем это может быть связано
PHP
1
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
<?php
 
//$imax = mysql_query("SELECT * FROM rooms",$db);
//echo $imax["id"];
$imax = "SELECT MAX(id) FROM `rooms`";
$imi=mysql_query($imax);
$im = mysql_fetch_array($imi);
 
//print_r($imi);
//echo $im['id'];
//echo $im["id"];
for($i=1;$i<=$im;$i++){
echo "i=".$i."<br>";
 
$res=mysql_query("select * from `rooms` where id='$i'");
 
 
 
$row=mysql_fetch_array($res);
 //echo $row["id"];
 echo $row["ZRAIONID"];
//print_r($row);
$j=50;
 
//$sql=0;
$sql="SELECT id FROM `rooms1` WHERE ZRAIONID='$row[ZRAIONID]' AND ZVSTREET='$row[ZVSTREET]' AND ZVPRICE='$row[ZVPRICE]'";
$sql_1 = mysql_query($sql);
$sql_2 = mysql_fetch_array($sql_1);
//echo $sql_2["id"]."<br>";
 
if($sql_2[id]!="")
{ echo $sql_2["id"]."<br>";
 
 
}
else{
//$art=mysql_query("INSERT INTO `rooms1` select * from `rooms` where id='$i'");
//$dar=mysql_query("INSERT IN `rooms1` SET (50,{$row['ZVPRICE']}, {$row['ZEQPRICE']}, {$row['ZVTH']}, {$row['ZSTAGE']}, {$row['ZHSTAGE']}, {$row['ZMATERID']}, {$row['ZAAREA']},{$row['ZRAREA']}, {$row['ZKAREA']}, {$row['ZVSTREET']}, {$row['ZRAIONID']}, {$row['ZWCID']}, {$row['ZVBAL']}, {$row['ZPHONEID']}, {$row['O.ZMISC']}, {$row['ZVAGPH']}, {$row['ZVAGENT']}, 0, 0, 0)") ;
$dar=mysql_query("INSERT INTO 'rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT', 'img1', 'img2', 'img3') VALUES ('&j+1', '$row[ZVPRICE]', '$row[ZEQPRICE]', '$row[ZVTH]', '$row[ZSTAGE]', '$row[ZHSTAGE]', '$row[ZMATERID]', '$row[ZAAREA]','$row[ZRAREA]', '$row[ZKAREA]', '$row[ZVSTREET]', '$row[ZRAIONID]', '$row[ZWCID]', '$row['ZVBAL']', '$row[ZPHONEID]', '$row['O.ZMISC']', '$row[ZVAGPH]', '$row[ZVAGENT]', 0, 0, 0)");
echo $dar;
echo ("no")."<br>";
}
 
 
//$r=mysql_fetch_array(mysql_query($sql));
 
 
 
}
 
?>
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
13.06.2010, 12:08
Цитата Сообщение от jule4ka Посмотреть сообщение
Не работает INSERT
А что это за значение такое VALUES ('&j+1', ? Может, надо VALUES ('".($j+1)."', ?
Да и всё равно лучше было бы указать для столбца id AUTO_INCREMENT и вообще его не указывать... тогда он автоматически присвоит следующее значение.
И вообще посмотри в своём же посте как форум подсветил синтаксис твоего запроса. Тут становится видно, что массивы у тебя неправильно указаны. Например, вместо
, '$row['ZVBAL']',
надо ставить
, '{$row['ZVBAL']}',
Иначе массив может быть воспринят, как одна только переменная $row, а сами квадратные скобки просто как текст. Когда вставляешь массив в строку, то лучше брать его в фигурные скобки.
0
0 / 0 / 0
Регистрация: 03.06.2010
Сообщений: 4
13.06.2010, 19:47  [ТС]
спс уже разобралась
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2010, 19:47
Помогаю со студенческими работами здесь

Объединение двух таблиц в один список
Добрый день, есть две таблицы: START и STOP с идентичными колонками кроме одной. В STOPe есть еще одна колонка - &quot;цена&quot;. ...

Объединение в один столбец из двух таблиц
Добрый день, что то туплю, помогите :) есть 2 таблицы Пользователи (id, user) 1 Иванов 2 Петров 3 Сидоров Телефоны (id,...

Объединение двух таблиц. Шли вторые сутки
Добрый вечер! Уже второй день бьюсь на задачей, в глазах уже мутнеет)) Есть таблица с источниками звонков --------------------- ...

Объединение двух MySQL таблиц с уникальными ключами
Здравствуйте. Я чайник в MySQL, а гугление особых успехов не принесло, поэтому обращаюсь к местным знатокам. Есть две таблицы в одной...

Объединение двух таблиц, одна из которых - подзапрос
Доброй ночи, форумчане. Подскажите, пожалуйста. Есть две таблицы: auto и xy. Хочу объединить их по условию xy.ZCOORD = auto.NO. Но перед...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru