Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ИЗБЕРЕТЕ КЪДЕ В СПИСЪКА и НЕ В СПИСЪКА в същия SQL

генерирайте външен израз за присъединяване, така че да получите:

SELECT ids.id, table_live.moderation_date
FROM (select 1 id union all select 2 union all ....) ids
LEFT JOIN table_live
ON ids.id = table_live.id

където ids е подзаявка, изброяваща всички стойности, нещо подобно:

$ids = '1,2,3,4,5'
$subquery = 'select '.str_replace(',', ' id union all select ', $ids).''
$sql = "SELECT ids.id, table_live.moderation_date
FROM ($subquery) ids
LEFT JOIN table_live
ON ids.id = table_live.id"

не забравяйте да изберете ids.id , а не table_live.id . По този начин идентификаторите винаги ще се показват, а moderation_date само ако съответният ред съществува в table_live.

Друг подход би бил да запазите заявката такава, каквато сте я имали, да съхраните резултата в масив и след това да обедините масивите в php, така че да запазите всички ключове, и да попълните стойностите само там, където ключът съвпада и в двата масива.

Не съм много сигурен какъв вид db библиотека използвате, така че не знам как да получа масив от набора от резултати, но да предположим, че бихте съхранили редовете в php масив, използвайки низово представяне на идентификатора като ключ и датата като стойност, тогава този код трябва да свърши работа:

$items = array(
    '1' => NULL
,   '2' => NULL
,   ...
); 
//note: use string keys in order to merge!!
$result = array_merge($items, $resultset);

вижте:http://php.net/manual/en/function.array -merge.php




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Limit LEFT JOIN Подзаявка след присъединяване

  2. проверете дали съществува колона преди ALTER TABLE -- mysql

  3. Как да настроите асинхронна репликация от Galera Cluster към самостоятелен MySQL сървър с GTID

  4. MySQL проверява дали съществува таблица, без да хвърля изключение

  5. Mysql външен ключ чрез неуникален ключ - как е възможно това?