Mysql выбрать из таблицы несколько идентификаторов и вставить их в другую таблицу - PullRequest
0 голосов
/ 20 августа 2011

У меня есть таблица mysql с именем

jos_users_quizzes with the following columns:

id
quiz_i
duser_id

I have a second table called  jos_users with this columns
id
name
username
department

идентификатор_пользователя в первой таблице связан с идентификатором второй таблицы, поэтому quiz_id = id (jos_users) Как построить запрос для множественной вставки идентификатороввыбранный отдел в таблицу jos_users_quizzes ... В ОДНОМ ЩЕЛЧОКЕ

Я думаю, что подзапрос или цикл подойдут, но не уверен, как составить запрос.Мне нужно выбрать все идентификаторы пользователей из выбранного отдела.Например, есть список отделов, и после выбора отдела выберите все идентификаторы, относящиеся к этому отделу, и вставьте все идентификаторы в другую таблицу (викторина, (все идентификаторы отделов)

Заранее спасибо!

Код из и ASP.NET формы для вставки ....

  string quizidselected = DropDownList1.SelectedValue;
            string deptselected = ListBox2.SelectedValue;
            //OdbcCommand cmd = new OdbcCommand("INSERT INTO jos_jquarks_users_quizzes  (quiz_id,user_id) VALUES (' " + quizidselected + " ',677)");
            OdbcCommand cmd = new OdbcCommand("INSERT INTO jos_jquarks_users_quizzes (user_id, quiz_id)    SELECT id, ' " + quizidselected + " ' FROM jos_users  WHERE department = ' " + deptselected + " '"); 

Ответы [ 3 ]

1 голос
/ 20 августа 2011

На основании моей интерпретации того, что вы хотите ...

INSERT INTO jos_users_quizzes (user_id, quiz_id)
    SELECT id, :new_quiz_id
        FROM jos_users
        WHERE department = :department
0 голосов
/ 10 июня 2014

Это легко, если вы знаете ключевое слово, такое как адрес электронной почты, идентификатор отдела или название отдела.

Например:

$depname = "Logistics"; // PHP // department name
$quizid = "Quiz-12"; // PHP // quiz name

Затем выполните запрос вставки:

<?php 
$query = "INSERT INTO `to_table` (user_id, quiz_id) 
                 SELECT id, '$quizid' FROM `from_table` 
                 WHERE department = '$depname'"; 
?>

Для большей совместимости вы можете использовать строчные буквы, если вы получили значения с веб-страницы, например:

<?php 
$query = "INSERT INTO `to_table` (user_id, quiz_id) 
                 SELECT id, LOWER('%$quizid%') 
                 FROM `from_table` 
                 WHERE department like LOWER('%$depname%')"; 
?>

Используйте команду addlashes для защиты базы данных при вставке данных с веб-страницы:

<?php 
$query = "INSERT INTO `to_table` (user_id, quiz_id) 
                 SELECT id, LOWER('%".addslashes($quizid)."%') 
                 FROM `from_table` 
                 WHERE department like LOWER('%".addslashes($depname)."%')"; 
?>
0 голосов
/ 20 августа 2011

Если вы устанавливаете идентификатор с помощью автоинкремента, то вы можете сделать что-то вроде этого

insert into jos_users_quizzes (quiz_i) select id from jos_users;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...