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

Ехо множество стойности със същото име на колона в същата таблица

Професионален съвет:Никога използвайте SELECT * в софтуера, освен ако не знаете точно защо го правите. Във вашия случай е вредно.

Предполагам, че вашата заявка наистина е срещу user и trade таблици, които споменахте във вашия въпрос.

Първо, преработете заявката си, като използвате SQL от 21-ви век, както следва:

SELECT * 
  FROM trade AS t
  JOIN user AS s ON  s.user_id = t.user_id_sender
 WHERE s.facebook_id = $fbid 

Второ, използвайте това, за да извлечете имената на вашите потребители и идентификатора на търгувания артикул.

SELECT s.user_name AS sender,
       r.user_name AS receiver,
       t.trade_id AS item_id
  FROM trade AS t
  JOIN user AS s ON  s.user_id = t.user_id_sender
  JOIN user AS r ON  r.user_id = t.user_id_receiver
 WHERE s.facebook_id = $fbid 

Вижте как JOIN user таблица два пъти, с два различни псевдонима s (за подател) и r (за приемник)? Това е трикът за извличане на двете имена от идентификатори.

Вижте как използваме псевдонимите sender и receiver за да разграничите двете user_name колони в резултатния набор?

Сега, когато използвате php fetch_array функция, ще се окажете с тези елементи в масива.

$history['sender']
$history['receiver']
$history['item_id']

Индексните низове на масива съответстват на имената на псевдонимите, които сте посочили във вашия SELECT клауза във вашата заявка.

Така че, една от причините да избягвате SELECT * е, че можете да получите повече от една колона със същото име и това означава fetch_array ще премахне тези дубликати и така ще загуби полезна информация от вашия набор от резултати.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да структурирам база данни за сигнали за непрочетени елементи на потребител

  2. Инсталирайте и конфигурирайте MySQL Workbench на Ubuntu 16.04

  3. MySQL сървърът е изчезнал по време на обхождане в Perl

  4. Enity Framework с MySQL

  5. Заявка за намиране на таблици, променени през последния час