Можно ли оптимизировать скрипт?

188
05 мая 2017, 19:52

Есть две таблицы, сделаны (к сожалению) таким образом:

`table_1`    
    +id+slug+
    + 1+  zz+
    + 2+  zy+
    + 3+  zx+
    + 4+  za+
    + 5+  zb+
    ...
`table_2`    
    +id+parent_id+slug+
    + 1+        1+  zz+
    + 2+        1+  zy+
    + 3+        1+  zx+
    + 4+        2+  za+
    + 5+        2+  zb+
    ...

Есть скрипт (для переноса данных меджу БД)

...подключения к БД, SELECT из `table_1`...
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM table_1";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$slug = $row['slug'];
if(in_array($slug, [
        'zz',
        'zy',
        'zx',
    ]))
    {
        $another_id = 1;
    }elseif(in_array($slug, [
        'za',
        'zb',
    ])){
        $another_id = 2;
    }

another_id, по сути, === parent_id
Проблема в том, что обе таблицы имеют около 200 полей, выбирать вручную SELECT DISTINCT slug FROM table_2 WHERE parent_id=1 все zz,zy,zx и ложить в if, наверное, не очень правильно. upd: в результате $another_id буду INSERT'ить в некоторое поле таблицы новой БД

Answer 1

Не понятно, через что связаны таблицы table_1 и table_2. Если связь table_1.id = table_2.id, то запрос такой:

SELECT
    t1.id,
    t1.slug,
    t2.parent_id as another_id
FROM table_1 AS t1
INNER JOIN table_2 AS t2 ON t1.id = t2.id

Если должна быть связь table_1.slug = table_2.slug:

SELECT
    t1.id,
    t1.slug,
    t2.parent_id as another_id
FROM table_1 AS t1
INNER JOIN `table_2` AS t2 ON t1.slug = t2.slug
READ ALSO
Есть ли среда для разработки мобильного приложения на PHP?

Есть ли среда для разработки мобильного приложения на PHP?

Написала мессенджер на PHP, который лежит локальном сервере ДенверКак можно конвертировать его в мобильное приложение? Существуют ли такие...

221
Параметры столбцов Yii2

Параметры столбцов Yii2

Здравствуйте, появилась очень глупая и неудобная проблема

249
Woocommerce изменение переменной

Woocommerce изменение переменной

Написал плагин, рассчитывающий цену на доставку товараНе смог понять как добавлять цену доставки к основной цене товара Woocommerce

259
Непонятный вывод в С++?

Непонятный вывод в С++?

Есть следующий фрагмент кода программы: maincpp

199