У меня есть две таблицы.Проблема с UNION в MySQL
rp_format
+-----+--+--------------+
| fid | | recordformat |
+-----+--+--------------+
| 1 | | CD |
| 2 | | Vinyl |
| 3 | | DVD |
+-----+--+--------------+
rp_records
+----+--+--------+
| id | | format |
+----+--+--------+
| 1 | | 1 |
| 2 | | 2 |
| 3 | | 3 |
+----+--+--------+
То, что я хотел бы добиться того, чтобы отобразить все от "rp_format". Но я также хотел бы сделать чек, чтобы узнать, есть ли «fid» -значение, найденное в «формате».
Пример, который должен отображаться на странице, как это:
fid recordformat
1 CD Remove this format
2 Vinyl Remove this format
3 DVD Remove this format
Но давайте говорить «груда» значение найдено в «формате», то я хотел бы, чтобы это будет отображаться как это на странице:
fid recordformat
1 CD Remove this format
2 Vinyl Can't remove this format
3 DVD Remove this format
«Удалить этот формат/Не удается удалить этот формат» - это текст, который будет отображаться с помощью проверки «fid» = «format» с использованием PHP.
Вот мой SQL запрос до сих пор:
global $wpdb;
$rpdb = $wpdb->prefix . 'rp_format';
$rpdb2 = $wpdb->prefix . 'rp_records';
$sql = "
SELECT *
FROM $rpdb
LEFT OUTER JOIN $rpdb2 ON $rpdb.fid = $rpdb2.format
UNION
SELECT *
FROM $rpdb
RIGHT OUTER JOIN $rpdb2 ON $rpdb.fid = $rpdb2.format
WHERE $rpdb.fid IS NOT NULL
";
Проблема у меня с этим запросом является то, что, когда «груда» находится в «формате» (скажем, он находится в 10 раз) каждый из этих 10 будут также выводиться значения.
Как это можно исправить?
Сердечные приветы Йохан
Могли бы вы обновить свой вопрос с полными таблицами, пожалуйста? Это важно для ответа. Вы можете использовать [this] (http://ozh.github.io/ascii-tables/) – marijnz0r
Better @ marijnz0r? :) –
Непонятно, если 'rp_format.fid' находится на' rp_records.format', тогда он должен отображать 'Can not remove this format' else' Удалить этот формат' - это то, чего вы пытаетесь достичь? –