Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

lấy dữ liệu từ hai bảng trong mysql, tham gia sẽ không hoạt động ở đây

Nếu tôi hiểu đúng, điều này sẽ làm những gì bạn cần:

$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
    // Do your outputting here.
}

Chỉnh sửa

Theo yêu cầu của bạn, tôi sẽ tiếp tục và giải thích truy vấn. Phần có thể khiến bạn bối rối là truy vấn con này:

(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))

IF EXISTS yêu cầu MySQL trả về TRUE hoặc FALSE nếu phần ngay sau nó 'tồn tại' (chứa một kết quả). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 chỉ cần yêu cầu MySQL tìm một hàng trong user_specialty nơi s.id = us.sid (ID đặc biệt phù hợp) và us.uid = '$id' (ID là của người dùng).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cơ sở dữ liệu latin-1 đến utf-8

  2. Cách định dạng số trong MySQL

  3. Mysql chọn Truy vấn với nhiều điều kiện của cùng một cột

  4. Làm thế nào để đặt một biến thành kết quả của một thủ tục được lưu trữ bên trong một MYSQL kích hoạt?

  5. Có nhiều hơn một AutoIncrement trên mỗi bảng